" vim: set fdm=marker
" Vim completion for DOM
" Maintainer:   teramako

if exists('b:loaded_jscomplete_xpcom')
  finish
endif
let b:loaded_jscomplete_xpcom = 1

let s:save_cpo = &cpo
set cpo&vim

let s:XPCOM_Object = {}
let s:XPCOM_Contract = {
  \   'createInstance': {'kind': 'f', 'type': 'Object', 'props': s:XPCOM_Object},
  \   'getService':     {'kind': 'f', 'type': 'Object', 'props': s:XPCOM_Object},
  \   'equals':         {'kind': 'f', 'type': 'Boolean'},
  \   'name':           {'kind': 'f', 'type': 'String'},
  \   'number':         {'kind': 'f', 'type': 'String'},
  \   'QueryInterface': {'kind': 'f', 'type': 'String'},
  \ }
let s:XPCOM = {}
let s:XPCOM.Components = {
  \   'kind': 'v', 'type': 'Object', 'props': {
  \   }
  \ }

" Components.classes {{{1
let s:XPCOM.Components.props.classes = {
  \   'kind': 'v', 'type': 'Object', 'menu': '[Components]',
  \   'props': {
  \     '@mozilla.org/intl/unicode/encoder;1?charset=Big5': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/timer;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/image/tools;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/profile/migrator;1?app=browser&type=ie': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/prompter;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/encoder;1?charset=x-mac-greek': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/inspector/dom-utils;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/xtf/xml-contentbuilder;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/persistent-properties;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicharcategory;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/decoder;1?charset=x-windows-949': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/file/local;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/encoder;1?charset=ISO-8859-6': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/toolkit/command-line;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/protocol/about;1?what=rights': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/mime-hdrparam;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/protocol/about;1?what=config': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/sync-stream-listener;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/decoder;1?charset=x-viet-tcvn5712': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/download-manager-ui;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/encoder;1?charset=x-mac-arabic': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/url-classifier/streamupdater;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/xmlextras/domparser;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/content/document-loader-factory;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/streamconv;1?from=x-compress&to=uncompressed': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/supports-PRUint64;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/protocol-proxy-service;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/storage/service;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/principal;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/widget/clipboardhelper;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/server-socket;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/encoder;1?charset=ISO-8859-14': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/decoder;1?charset=x-mac-turkish': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/uriloader/web-handler-app;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/sms/smsservice;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/saveascharset;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/http-authenticator;1?scheme=basic': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/sidebar;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/streamconv;1?from=text/plain&to=text/html': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/webnavigation-info;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/windows-jumplistshortcut;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/charsetdetect;1?type=ukprob': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/decoder;1?charset=windows-1251': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/storage/statement-wrapper;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/system-proxy-settings;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/embedcomp/rangefind;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/windows-jumplistseparator;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/process/util;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/layout/contentserializer;1?mimetype=image/svg+xml': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/login-manager/storage/mozStorage;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/protocol;1?name=moz-filedata': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/mime-input-stream;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/decoder;1?charset=UTF-8': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/dom/storage;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/embedding/browser/nsCommandHandler;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/encoder;1?charset=IBM850': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/encoder;1?charset=windows-1254': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/sound;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/supports-PRUint8;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/encoder;1?charset=x-mac-devanagari': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/decoder;1?charset=ISO-8859-6': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/thirdpartyutil;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/passwordmanager/authpromptfactory;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/extensions/blocklist;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/widget/bidikeyboard;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/permissions/contentblocker;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/appshell/component/browser-status-filter;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/decoder;1?charset=ISO-2022-CN': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/security/nsASN1Tree;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/rdf/datasource;1?name=window-mediator': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/thread-manager;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/charsetdetect;1?type=ruprob': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/uriloader/content-handler;1?type=text/css': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/protocol/about;1?what=newaddon': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/editor/editorcontroller;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/layout/documentEncoder;1?type=application/xml': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/texttosuburi;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/http-activity-distributor;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/protocol/about;1?what=buildconfig': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/widget/htmlformatconverter;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/encoder;1?charset=Shift_JIS': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/protocol/about;1?what=addons': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/nsCertificateDialogs;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/streamconv;1?from=application/http-index-format&to=text/html': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/stream-transport-service;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/js/xpc/RuntimeService;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/places/expiration;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/updates/update-service-stub;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/binary-detector;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/charsetalias;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/autocomplete/search;1?name=history': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/browser/favicon-service;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/protocol;1?name=https': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/feed-person;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/browser/tagging-service;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/content/plugin/document-loader-factory;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/request-observer-proxy;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/storage/vacuum;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@requestpolicy.com/requestpolicy-service;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/embedcomp/controller-command-group;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/uriloader/content-handler;1?type=text/plain': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/startupcache/cache;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/socket;2?type=starttls': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/uriloader/external-helper-app-service;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/scriptsecuritymanager;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/browser/browserglue;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/protocol;1?name=ftp': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/js/xpc/XPConnect;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/supports-cstring;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/decoder;1?charset=Big5-HKSCS': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/security/psmdownload;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/embedcomp/find;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/autocomplete/controller;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/unichar-stream-loader;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/nsTokenDialogs;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/scriptabledateformat;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/application-cache-service;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/image/encoder;2?type=image/vnd.microsoft.icon': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/http-authenticator;1?scheme=ntlm': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/encoder;1?charset=gb18030': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/geolocation/provider;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/charsetdetect;1?type=ko_parallel_state_machine': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/memory-reporter-manager;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/js/xpc/ContextStack;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/socket;2?type=socks': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/platformcharset;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/supports-double;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/decoder;1?charset=x-mac-arabic': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/system-info;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/charsetdetect;1?type=cjk_parallel_state_machine': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/decoder;1?charset=KOI8-U': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/content/post-content-iterator;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/supports-string;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/pref-localizedstring;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/decoder;1?charset=ISO-8859-6-E': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/security/nsscertcache;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/libjar/zip-reader-cache;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/geolocation/service;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/url-classifier/utils;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/protocol/about;1?what=home': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/editor/txtsrvfilter;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/windows-jumplistitem;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/protocol/about;1?what=certerror': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/io/multiplex-input-stream;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/nsDOMCryptoDialogs;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/decoder;1?charset=armscii-8': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/jsctypes;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/encoder;1?charset=windows-874': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/protocol;1?name=resource': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/updates/update-manager;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/encoder;1?charset=ISO-8859-3': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/url-parser;1?auth=yes': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/encoder;1?charset=ISO-8859-8-I': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/protocol/about;1?what=sync-tabs': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/encoder;1?charset=x-zapf-dingbats': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/idn-service;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/updates/update-checker;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/input-stream-channel;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/toolkit/app-startup;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/url-classifier/listmanager;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/auth-module;1?name=ntlm': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/embedcomp/prompt-service;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/socket;2?type=udp': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/encoder;1?charset=x-johab': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/spellchecker/personaldictionary;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/byte-buffer;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/widget/idleservice;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/content/dropped-link-handler;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/layout/documentEncoder;1?type=application/xhtml+xml': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/protocol;1?name=http': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/decoder;1?charset=windows-1252': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/semanticunitscanner;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/rdf/datasource;1?name=in-memory-datasource': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/protocol;1?name=moz-device': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/decoder;1?charset=UTF-16LE': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/streamconv;1?from=compress&to=uncompressed': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/decoder;1?charset=us-ascii': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/stream-loader;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/content/canvas-rendering-context;1?id=2d': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/layout/contentserializer;1?mimetype=text/html': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/scriptableinputstream;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/socket;2?type=ssl': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/encoder;1?charset=x-windows-949': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/security/hash;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/hash-property-bag;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/auth-module;1?name=sasl-gssapi': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/encoder;1?charset=windows-1251': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/decoder;1?charset=ISO-8859-15': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/decoder;1?charset=ISO-8859-3': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/dom/storagemanager;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/psm;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/docloaderservice;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/streamconv;1?from=application/mac-binhex40&to=*/*': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/protocol/about;1?what=cache': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/xpcom/ini-parser-factory;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/gfx/printsettings-service;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/decoder;1?charset=IBM866': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/encoder;1?charset=us-ascii': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/encoder;1?charset=TIS-620': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/uriloader/content-handler;1?type=text/html': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/security/nsCertTree;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/xul/xul-template-builder;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/inspector/flasher;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/security/crypto;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/fuel/application;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/url-classifier/hashcompleter;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/converter-output-stream;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/embeddor.implemented/bookmark-charset-resolver;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/stringcharsetdetect;1?type=zhcn_parallel_state_machine': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/cycle-collector-logger;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/editor/editingsession;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/xbl;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/embeddor.implemented/web-content-handler-registrar;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/encoder;1?charset=GEOSTD8': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/content-pref/hostname-grouper;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/encoder;1?charset=x-mac-romanian': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/util;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/embedcomp/cookieprompt-service;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/converter-input-stream;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/url-parser;1?auth=maybe': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/netwerk/global-channel-event-sink;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/layout/documentEncoder;1?type=image/svg+xml': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/encoder;1?charset=x-mac-ce': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/permissionmanager;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/toolkit/crash-reporter;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/base/telemetry;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/safebrowsing/application;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/application-cache-namespace;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/encoder;1?charset=ISO-8859-8': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/uriloader/content-handler;1?type=image/x-icon': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/accessibleRetrieval;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/stringcharsetdetect;1?type=cjk_parallel_state_machine': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/js/jsd/debugger-service;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/docshell;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/image/encoder;2?type=image/png': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/encoder;1?charset=x-mac-cyrillic': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/gfx/devicecontextspec;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/nsGeneratingKeypairInfoDialogs;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/cookie/permission;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/uriloader/content-handler;1?type=image/bmp': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/decoder;1?charset=GB2312': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/image/loader;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/partial-file-input-stream;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/supports-id;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/uriloader/psm-external-content-listener;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/uriloader/content-handler;1?type=image/vnd.microsoft.icon': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/decoder;1?charset=windows-1257': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/auth-module;1?name=negotiate-sspi': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/security/script/nameset;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/protocol;1?name=place': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/commandlinehandler/general-startup;1?type=vimperator': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/login-manager/prompter;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/decoder;1?charset=KOI8-R': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/decoder;1?charset=x-mac-romanian': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/standard-url;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/charsetdetect;1?type=zhcn_parallel_state_machine': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/protocol;1?name=ws': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/widgets/window/win;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/process/environment;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/feed-processor;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/globalmessagemanager;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/security/recentbadcerts;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/encoder;1?charset=x-mac-gujarati': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/xmlextras/xmlserializer;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/decoder;1?charset=ISO-8859-8': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/layout/xul-boxobject-container;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/streamconv;1?from=multipart/mixed&to=*/*': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/auth-module;1?name=kerb-gss': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/layout/contentserializer;1?mimetype=application/xhtml+xml': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/appshell/appShellService;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/eventsource;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/protocol/about;1?what=mozilla': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/uuid-generator;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/js/jsd/app-start-observer;2': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/protocol/about;1?what=plugins': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/serialization-helper;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/file/directory_service;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicharutil;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/browser/search-service;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/application-cache;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/decoder;1?charset=gbk': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/pipe;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/decoder;1?charset=gb18030': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/browser/feeds/sniffer;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/decoder;1?charset=x-mac-greek': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/protocol/about;1?what=logo': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/encoder;1?charset=T.61-8bit': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/login-manager/loginInfo;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/decoder;1?charset=T.61-8bit': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/embedcomp/appstartup-notifier;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/encoder;1?charset=IBM855': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/decoder;1?charset=x-mac-ce': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/rdf/datasource;1?name=composite-datasource': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/satchel/form-history;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/nsClientAuthDialogs;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/datetimeformat;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/console-api;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/nullprincipal;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/dom/window-controller;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/inspector/deep-tree-walker;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/charsetdetect;1?type=zh_parallel_state_machine': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/collation-factory;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/layout/contentserializer;1?mimetype=text/plain': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/inspector/dom-view;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/offlinecacheupdate;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/geolocation;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/embedcomp/controller-command-table;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/decoder;1?charset=x-mac-roman': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/autoconfiguration;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/encoder;1?charset=x-mac-turkish': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/streamconv;1?from=uncompressed&to=deflate': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/supports-PRInt32;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/svg/svg-document;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/protocol;1?name=wyciwyg': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/encoder;1?charset=windows-1252': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/charsetdetect;1?type=zhtw_parallel_state_machine': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/decoder;1?charset=ISO-8859-10': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/xpcom/version-comparator;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/uriloader/content-handler;1?type=application/http-index-format': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/simple-stream-listener;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/browser/directory-provider;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/protocol;1?name=chrome': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/layout/xul-boxobject-scrollbox;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/load-group;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/layout/xul-boxobject-tree;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/alerts-service;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/encoder;1?charset=x-euc-tw': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/browser/shell-service;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/encoder;1?charset=x-adobe-euro': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/encoder;1?charset=IBM862': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/file-output-stream;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/protocol/about;1?what=credits': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/decoder;1?charset=windows-1258': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/protocol;1?name=about': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/content/style-sheet-service;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/uriloader/content-handler;1?type=image/png': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/chrome/chrome-registry;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/properties;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/protocol;1?name=feed': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/feed;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/jsreflect;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/cookieService;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/xpcom/ini-processor-factory;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/data-document-content-policy;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/nsCMSDecoder;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/supports-PRInt64;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/binaryoutputstream;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/encoder;1?charset=EUC-JP': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/crypto/fips-info-service;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/charsetdetect;1?type=ja_parallel_state_machine': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/content/element/html;1?name=audio': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/PopupWindowManager;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/protocol;1?name=moz-icon': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/uriloader/handler-service;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/security/pkcs11moduledb;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/autocomplete/search;1?name=form-history': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/encoder;1?charset=ISO-8859-5': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/browser/places/import-export-service;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/toolkit/URLFormatterService;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/xml/xml-document;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/nsTokenPasswordDialogs;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/buffered-input-stream;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/nslanguageatomservice;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/feed-textconstruct;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/encoder;1?charset=Adobe-Symbol-Encoding': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/uriloader/content-handler;1?type=application/xhtml+xml': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/base/telemetry-ping;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/security/keyobjectfactory;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/encoder;1?charset=UTF-16LE': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/encoder;1?charset=ISO-8859-15': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/spellchecker-inline;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/safe-file-output-stream;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/streamconv;1?from=uncompressed&to=gzip': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/encoder;1?charset=ISO-8859-6-E': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/content/dom-selection;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/decoder;1?charset=windows-1250': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/toolkit/console-clh;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/transformiix-nodeset;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/uriloader/content-handler;1?type=image/svg+xml': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/updates/update-prompt;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/dom/indexeddb/manager;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/security/x509certdb;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/nslocaleservice;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/rdf/content-sink;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/protocol/about;1?what=permissions': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/urichecker;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/dom/storage;2': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/windows-jumplistlink;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/decoder;1?charset=ISO-8859-8-E': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/uriloader/content-handler;1?type=application/vnd.mozilla.xul+xml': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/browser/livemark-service;2': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/decoder;1?charset=ISO-8859-5': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/decoder;1?charset=x-user-defined': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/preferences;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/uriloader/content-handler;1?type=image/jpg': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/protocol;1?name=data': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/image/request;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/parser/parser-service;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/encoder;1?charset=x-viet-tcvn5712': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/browser/httpindex-service;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/xmlextras/xmlhttprequest;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/stringcharsetdetect;1?type=ukprob': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/js/xpc/ID;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/websocket;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/protocol/about;1?what=blocked': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/atom-service;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/js/xpc/ContextStackIterator;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/browser/session-history-entry;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/feed-result;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/userinfo;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/security/crlmanager;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/xpfe/http-index-format-factory-constructor': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/encoder;1?charset=IBM852': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/browser/nav-history-service;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/nsFormSigningDialog;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/security/hmac;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/rdf/serializer;1?format=ntriples': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/auth-module;1?name=kerb-sspi': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/stringcharsetdetect;1?type=zhtw_parallel_state_machine': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/encoder;1?charset=x-mac-roman': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/nsCMSSecureMessage;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/embedding/browser/nsWebBrowserPersist;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/uriloader/content-handler;1?type=image/gif': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/stringbundle;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/user_cert_picker;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/browser/shistory;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/encoder;1?charset=UTF-7': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/browser/final-clh;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/input-stream-pump;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/entityconverter;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/decoder;1?charset=x-imap4-modified-utf7': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/encoder;1?charset=x-user-defined': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/typeaheadfind;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/supports-array;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/decoder;1?charset=ISO-8859-13': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/decoder;1?charset=x-johab': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/prefetch-service;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/weave/service;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/widget/appshell/win;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/socket-provider-service;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/zipwriter;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/supports-float;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/rdf/datasource;1?name=local-store': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/preferences-service;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/nsSSLCertErrorDialog;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/streamconv;1?from=gzip&to=uncompressed': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/decoder;1?charset=windows-1255': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/find/find_service;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/windows-registry-key;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/scriptableunicodeconverter': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/nsCertPickDialogs;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/login-manager/crypto/SDR;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/content/range-utils;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/editor/txtsrvfiltermail;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/protocol;1?name=jar': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/image/encoder;2?type=image/bmp': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/pref-relativefile;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/gfx/printsession;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/mime;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/browser/global-history;2': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/encoder;1?charset=windows-1258': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/layout/contentserializer;1?mimetype=application/xml': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/childprocessmessagemanager;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/encoder;1?charset=VISCII': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/encoder;1?charset=Big5-HKSCS': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/streamconv;1?from=deflate&to=uncompressed': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/layout/htmlsanitizer;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/protocol/about;1?what=sync-log': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/cookiemanager;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/encoder;1?charset=ISO-8859-2': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/autocomplete/search;1?name=search-autocomplete': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/protocol;1?name=moz-anno': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/embedcomp/printingprompt-service;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/image/encoder;2?type=image/jpeg': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/supports-PRInt16;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/network-link-service;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/wbrk;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/charset-converter-manager;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/security/streamcipher;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/eventlistenerservice;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/layout/documentEncoder;1?type=text/html': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/rdf/rdf-service;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/security/certoverride;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/layout/content-policy;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/secure_browser_ui;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/browser/history-entry;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/encoder;1?charset=ISO-8859-10': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/widget/dragservice;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/layout/xul-boxobject-menu;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/embedcomp/base-command-controller;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/decoder;1?charset=IBM864i': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/wifi/monitor;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/plugin/host;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/embedcomp/command-params;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/uriloader/content-handler;1?type=text/xml': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/encoder;1?charset=IBM857': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/layout/xul-boxobject-listbox;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/uriloader;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/browser/clh;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/encoder;1?charset=windows-1255': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/encoder;1?charset=x-tamilttf-0': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/feed-generator;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/lbrk;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/uriloader/local-handler-app;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/encoder;1?charset=EUC-KR': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/layout/documentEncoder;1?type=text/plain': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/encoder;1?charset=x-mac-hebrew': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/filepicker;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/accessibilityService;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/io/string-input-stream;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/protocol/about;1?what=sessionrestore': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/decoder;1?charset=x-mac-gurmukhi': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/js/xpc/Exception;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/encoder;1?charset=windows-1250': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/decoder;1?charset=ISO-8859-16': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/content/xmlhttprequest-bad-cert-handler;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/decoder;1?charset=ISO-8859-2': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/transfer;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/feed-entry;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/streamconv;1?from=x-gzip&to=uncompressed': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/addons/web-install-listener;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/encoder;1?charset=ISO-IR-111': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/encoder;1?charset=IBM864': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/content/namespacemanager;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/rdf/datasource;1?name=xml-datasource': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/uriloader/content-handler;1?type=image/jpeg': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/xpcomproxy;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/embedding/browser/nsWebBrowser;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/proxy-auto-config;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/binaryinputstream;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/systemprincipal;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/protocol/about;1?what=neterror': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/login-manager/storage/legacy;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/streamconv;1?from=uncompressed&to=x-gzip': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/thread-pool;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/incremental-download;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/xtf/xtf-service;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/embedcomp/command-manager;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/image/rasterimage;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/xpcom/memory-service;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/protocol/about;1?what=sync-progress': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/decoder;1?charset=IBM850': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/stringcharsetdetect;1?type=ruprob': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/parental-controls-service;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/file-input-stream;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/no-data-protocol-content-policy;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/widgets/child_window/win;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/cspservice;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/libjar/zip-reader;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/document-charset-info;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/protocol/about;1?what=privatebrowsing': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/download-manager;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/addons/integration;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/xre/runtime;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/readconfig;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/encoder;1?charset=ISO-8859-7': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/content/subtree-content-iterator;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/decoder;1?charset=UTF-16BE': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/protocol;1?name=file': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/offlinecacheupdate-service;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/browser/nav-bookmarks-service;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/txttohtmlconv;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/decoder;1?charset=x-mac-devanagari': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/protocol/about;1?what=memory': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/decoder;1?charset=Shift_JIS': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/http-authenticator;1?scheme=negotiate': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/decoder;1?charset=x-mac-cyrillic': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/decoder;1?charset=x-mac-hebrew': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/xpcom/error-service;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/streamconv;1?from=application/x-unknown-content-type&to=*/*': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/rdf/resource-factory;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/supports-PRTime;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/rdf/datasource;1?name=charset-menu': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/supports-interface-pointer;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/http-channel-auth-provider;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/content/pre-content-iterator;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/view-manager;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/windows-taskbar;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/moz/jssubscript-loader;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/security/sdr;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/decoder;1?charset=windows-1256': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/spellchecker/i18nmanager;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/commandlinehandler/general-startup;1?type=inspector': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/content/canvas-rendering-context;1?id=moz-webgl': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/decoder;1?charset=ISO-8859-6-I': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/dirIndex;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/decoder;1?charset=x-mac-croatian': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/appshell/window-mediator;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/simple-uri;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/decoder;1?charset=x-mac-gujarati': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/decoder;1?charset=GEOSTD8': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/stsservice;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/decoder;1?charset=ISO-8859-7': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/categorymanager;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/security/datasignatureverifier;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/content/range;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/protocol/about;1?what=robots': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/browser/default-browser-clh;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/layout/documentEncoder;1?type=text/xml': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/streamconv;1?from=application/vnd.mozilla.maybe.feed&to=*/*': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/stringcharsetdetect;1?type=ko_parallel_state_machine': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/updates/timer-manager;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/protocol;1?name=liberator': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/uriloader/content-handler;1?type=text/rdf': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/widget/clipboard;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/scripterror;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/nsCMSEncoder;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/content/element/html;1?name=option': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/encoder;1?charset=ISO-8859-13': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/spellchecker;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/async-stream-copier;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/image/cache;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicodenormalizer;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/editor/editordocstatecontroller;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/decoder;1?charset=UTF-16': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/io-util;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/uriclassifierservice': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/textservices/textservicesdocument;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/spellcheck/dir-provider;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/login-manager;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/streamconv;1?from=multipart/byteranges&to=*/*': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/protocol;1?name=javascript': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/encoder;1?charset=ISO-8859-8-E': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/encoder;1?charset=x-tscii': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/uriloader/external-protocol-service;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/supports-PRUint32;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/decoder;1?charset=UTF-7': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/browser/annotation-service;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/content/2dthebes-canvas-rendering-context;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/decoder;1?charset=ISO-8859-11': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/encoder;1?charset=x-imap4-modified-utf7': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/decoder;1?charset=x-viet-vps': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/security/pkcs11;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/supports-PRBool;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/jsdebugger;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/encoder;1?charset=x-mac-croatian': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/protocol/about;1?what=support': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/content-pref/service;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/parentprocessmessagemanager;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/url-classifier/dbservice;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/decoder;1?charset=IBM862': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/exslt/regexp;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/document-transformer;1?type=xslt': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/decoder;1?charset=ISO-IR-111': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/editor/htmleditor;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/http-auth-manager;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/protocol;1?name=wss': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/contentsecuritypolicy;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/xul/xul-document;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/exceptionservice;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/url-classifier/jslib;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/saxparser/attributes;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/encoder;1?charset=KOI8-U': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/focus-manager;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/encoder;1?charset=x-mac-gurmukhi': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/rdf/datasource;1?name=httpindex': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/content-permission/prompt;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/decoder;1?charset=windows-874': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/browser/session-history-transaction;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/autocomplete/simple-result;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/array;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/browser/sessionstore;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/security/random-generator;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/encoder;1?charset=ISO-8859-4': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/content-sniffer;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/gfx/info;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/decoder;1?charset=HZ-GB-2312': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/rdf/xml-parser;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/decoder;1?charset=TIS-620': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/url-classifier/prefixset;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/protocol;1?name=default': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/toolkit/default-clh;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/encoder;1?charset=x-mac-icelandic': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/encoder;1?charset=ISO-2022-JP': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/encoder;1?charset=ISO-8859-16': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/gfx/fontenumerator;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/socket-transport-service;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/toolkit/profile-service;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/content/element/html;1?name=img': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/encoder;1?charset=windows-1257': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/jsperf;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/observer-service;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/browser/download-history;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/encoder;1?charset=x-mac-farsi': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/security/keyobject;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/stream-listener-tee;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/gfx/printerenumerator;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/browser/feeds/result-service;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/recycling-allocator;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/decoder;1?charset=windows-1253': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/protocol/about;1?what=': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/layout/xul-boxobject-popup;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/nsSecurityWarningDialogs;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/nschannelpolicy;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/xul/xul-controllers;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/embedcomp/dialogparam;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/layout/xul-boxobject;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/layout/form-processor;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/encoder;1?charset=UTF-8': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/gfx/screenmanager;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/rdf/container;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/moz/jsloader;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/protocol/about;1?what=feeds': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/rdf/xml-serializer;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/dns-service;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/encoder;1?charset=windows-1256': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/decoder;1?charset=VISCII': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/decoder;1?charset=ISO-8859-14': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/decoder;1?charset=Big5': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/helperapplauncherdialog;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/streamConverters;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/decoder;1?charset=ISO-8859-4': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/protocol;1?name=chrome-data': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/streamconv;1?from=application/vnd.mozilla.maybe.video.feed&to=*/*': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/decoder;1?charset=EUC-JP': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/stringbundle/text-override;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/decoder;1?charset=ISO-2022-JP': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/encoder;1?charset=HZ-GB-2312': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/browser/shistory-internal;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/socket;2?type=socks4': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/buffered-output-stream;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/encoder;1?charset=IBM866': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/editor/editorspellchecker;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/redirectchannelregistrar;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/collation;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/widget/transferable;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/windows-jumplistbuilder;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/docshell/structured-clone-container;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/encoder;1?charset=UTF-16BE': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/updates/update-service;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/auth-module;1?name=sys-ntlm': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/encoder;1?charset=hkscs-1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/files/formdata;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/rdf/container-utils;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/satchel/form-autocomplete;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/decoder;1?charset=IBM852': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/tools/profiler;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/layout/contentserializer;1?mimetype=application/vnd.mozilla.xul+xml': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/decoder;1?charset=IBM855': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/xpcom/debug;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/satchel/form-fill-controller;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/editor/texteditor;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/privatebrowsing-wrapper;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/chrome/chrome-native-theme;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/encoder;1?charset=ISO-8859-9': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/nsCMSMessage;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/protocol/about;1?what=crashes': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/satchel/inputlist-autocomplete;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/decoder;1?charset=ISO-2022-KR': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/editor/htmleditorcontroller;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/streamconv;1?from=multipart/x-mixed-replace&to=*/*': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/devicemotion;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/streamconv;1?from=text/ftp-dir&to=application/http-index-format': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/places/categoriesStarter;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/embedcomp/window-watcher;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/encoder;1?charset=IBM864i': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/encoder;1?charset=UTF-16': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/spellchecker/engine;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/encoder;1?charset=GB2312': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/protocol/about;1?what=vimperator': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/security/pkiparamblock;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/toolkit/profile-migrator;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/auth-module;1?name=negotiate-gss': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/embedding/browser/content-policy;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/gfx/init;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/profile/migrator;1?app=browser&type=chrome': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/url-parser;1?auth=no': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/encoder;1?charset=jis_0201': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/decoder;1?charset=windows-1254': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/streamconv;1?from=uncompressed&to=rawdeflate': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/xre/app-info;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/browser/history;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/streamconv;1?from=application/vnd.mozilla.maybe.audio.feed&to=*/*': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/encoder;1?charset=KOI8-R': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/protocol/about;1?what=license': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/utf8converterservice;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/transactionmanager;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/nss_errors_service;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/saxparser/xmlreader;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/effective-tld-service;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/content-dispatch-chooser;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@zuse.jp/tanasinn/process;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/decoder;1?charset=ISO-8859-9': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/authprompt-adapter-factory;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/layout/plaintextsink;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/gfx/region;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/geolocation/gpsd/provider;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/http-authenticator;1?scheme=digest': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/cache-service;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/security/entropy;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/variant;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/encoder;1?charset=ISO-8859-1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/content/canvas-rendering-context;1?id=experimental-webgl': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/decoder;1?charset=x-euc-tw': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/supports-PRUint16;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/protocol/about;1?what=blank': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/autocomplete/search;1?name=places-tag-autocomplete': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/protocol/about;1?what=cache-entry': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/security/pk11tokendb;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/protocol;1?name=view-source': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/encoder;1?charset=gbk': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/stringcharsetdetect;1?type=ja_parallel_state_machine': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/supports-char;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/rdf/datasource;1?name=files': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/encoder;1?charset=armscii-8': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/encoder;1?charset=ISO-8859-11': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/stringcharsetdetect;1?type=universal_charset_detector': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/storagestream;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/feed-unescapehtml;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/toolkit/native-app-support;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/dom/xpath-evaluator;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/layout/contentserializer;1?mimetype=text/xml': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/decoder;1?charset=IBM857': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/browser/sessionstartup;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/encoder;1?charset=ISO-8859-6-I': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/charsetdetect;1?type=universal_charset_detector': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/dirIndexParser;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/protocol/about;1?what=about': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/downloader;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/decoder;1?charset=EUC-KR': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/xpti/interfaceinfomanager-service;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/files/filereader;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/scriptablebase64encoder;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/supports-void;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/dom/json;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/consoleservice;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/browser/feeds/result-writer;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/encoder;1?charset=x-viet-vps': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/encoder;1?charset=windows-1253': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/decoder;1?charset=ISO-8859-8-I': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/protocol;1?name=pcast': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/io-service;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/uriloader/content-handler;1?type=application/x-xpinstall': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/decoder;1?charset=ISO-8859-1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/inspector/search;1?type=cssvalue': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/decoder;1?charset=IBM864': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/xul/xul-tree-builder;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/privatebrowsing;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/docshell/urifixup;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/stringcharsetdetect;1?type=zh_parallel_state_machine': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/decoder;1?charset=x-mac-icelandic': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/services-crypto/sync-jpake;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/network/protocol;1?name=moz-safe-about': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/xul/xul-sort-service;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/intl/unicode/decoder;1?charset=x-mac-farsi': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \     '@mozilla.org/layout/htmlCopyEncoder;1': {'kind': 'v','type': 'Object', 'props': s:XPCOM_Contract},
  \   }
  \ }
" 1}}}
" Components.interfaces {{{1
let s:XPCOM.Components.props.interfaces = {
  \   'kind': 'v', 'type': 'Object', 'menu': '[Components]',
  \   'props': {
  \     'nsIInputIterator': {'kind': 'v', 'type': 'Object', },
  \     'txIXPathObject': {'kind': 'v', 'type': 'Object', },
  \     'nsIIDBRequest': {'kind': 'v', 'type': 'Object', },
  \     'nsIContentSniffer': {'kind': 'v', 'type': 'Object', },
  \     'extIPreferenceBranch': {'kind': 'v', 'type': 'Object', },
  \     'ScheduledGCCallback': {'kind': 'v', 'type': 'Object', },
  \     'nsISHContainer': {'kind': 'v', 'type': 'Object', },
  \     'nsITimer': {'kind': 'v', 'type': 'Object', },
  \     'nsIBrowserSearchService': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMHTMLAudioElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMNSDataTransfer': {'kind': 'v', 'type': 'Object', },
  \     'nsIGnomeVFSService': {'kind': 'v', 'type': 'Object', },
  \     'nsIScrollBoxObject': {'kind': 'v', 'type': 'Object', },
  \     'nsICachingChannel': {'kind': 'v', 'type': 'Object', },
  \     'nsILoginManagerCrypto': {'kind': 'v', 'type': 'Object', },
  \     'nsIPageTransitionEventInit': {'kind': 'v', 'type': 'Object', },
  \     'nsIAuthPromptAdapterFactory': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGAnimatedInteger': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMMozSmsMessage': {'kind': 'v', 'type': 'Object', },
  \     'nsITableEditor': {'kind': 'v', 'type': 'Object', },
  \     'nsIZipReader': {'kind': 'v', 'type': 'Object', },
  \     'nsIThreadPoolListener': {'kind': 'v', 'type': 'Object', },
  \     'nsIPropertyBag2': {'kind': 'v', 'type': 'Object', },
  \     'nsILocalFile': {'kind': 'v', 'type': 'Object', },
  \     'nsIChildChannel': {'kind': 'v', 'type': 'Object', },
  \     'nsIURIFixup': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMStorageItem': {'kind': 'v', 'type': 'Object', },
  \     'nsIPKIParamBlock': {'kind': 'v', 'type': 'Object', },
  \     'nsIStorageStream': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMHTMLModElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGFEFuncBElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIDownloadObserver': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGPathSegLinetoRel': {'kind': 'v', 'type': 'Object', },
  \     'nsIFile': {'kind': 'v', 'type': 'Object', },
  \     'nsIDocumentLoader': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMHTMLTableCellElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIException': {'kind': 'v', 'type': 'Object', },
  \     'nsIContentPrefObserver': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGFESpecularLightingElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIUrlClassifierDBService': {'kind': 'v', 'type': 'Object', },
  \     'nsIRDFDataSource': {'kind': 'v', 'type': 'Object', },
  \     'nsIContentPrefService': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMNotifyPaintEvent': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMMozTouchEvent': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMHTMLOptionElement': {'kind': 'v', 'type': 'Object', },
  \     'nsICacheEntryInfo': {'kind': 'v', 'type': 'Object', },
  \     'nsITextServicesFilter': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMDocument': {'kind': 'v', 'type': 'Object', },
  \     'nsILoginManagerPrompter': {'kind': 'v', 'type': 'Object', },
  \     'nsIDirectoryServiceProvider': {'kind': 'v', 'type': 'Object', },
  \     'nsIFeedProgressListener': {'kind': 'v', 'type': 'Object', },
  \     'nsISecurityEventSink': {'kind': 'v', 'type': 'Object', },
  \     'nsIRDFNode': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGDescElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMCSSRule': {'kind': 'v', 'type': 'Object', },
  \     'nsIProxyInfo': {'kind': 'v', 'type': 'Object', },
  \     'inIFlasher': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMXMLDocument': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGImageElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIUrlClassifierDBServiceWorker': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMHTMLOutputElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIWebBrowserSetup': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMNavigator': {'kind': 'v', 'type': 'Object', },
  \     'nsIAssociatedContentSecurity': {'kind': 'v', 'type': 'Object', },
  \     'nsIRunnable': {'kind': 'v', 'type': 'Object', },
  \     'nsIDirectoryService': {'kind': 'v', 'type': 'Object', },
  \     'extIExtension': {'kind': 'v', 'type': 'Object', },
  \     'nsIDNSListener': {'kind': 'v', 'type': 'Object', },
  \     'nsIPK11TokenDB': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGAnimatedNumberList': {'kind': 'v', 'type': 'Object', },
  \     'nsIAccessibleText': {'kind': 'v', 'type': 'Object', },
  \     'nsIGIOService': {'kind': 'v', 'type': 'Object', },
  \     'nsICommandLineValidator': {'kind': 'v', 'type': 'Object', },
  \     'nsISimpleStreamListener': {'kind': 'v', 'type': 'Object', },
  \     'nsICookieManager': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMMediaList': {'kind': 'v', 'type': 'Object', },
  \     'nsIApplicationCacheNamespace': {'kind': 'v', 'type': 'Object', },
  \     'nsIInputListAutoComplete': {'kind': 'v', 'type': 'Object', },
  \     'nsIMIMEHeaderParam': {'kind': 'v', 'type': 'Object', },
  \     'xpcIJSWeakReference': {'kind': 'v', 'type': 'Object', },
  \     'mozIPersonalDictionary': {'kind': 'v', 'type': 'Object', },
  \     'nsISerializable': {'kind': 'v', 'type': 'Object', },
  \     'imgIContainerObserver': {'kind': 'v', 'type': 'Object', },
  \     'nsIStringEnumerator': {'kind': 'v', 'type': 'Object', },
  \     'nsIHttpAuthManager': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSerializer': {'kind': 'v', 'type': 'Object', },
  \     'nsICacheMetaDataVisitor': {'kind': 'v', 'type': 'Object', },
  \     'mozIPlaceInfo': {'kind': 'v', 'type': 'Object', },
  \     'nsIPKCS11Slot': {'kind': 'v', 'type': 'Object', },
  \     'nsIGeneratingKeypairInfoDialogs': {'kind': 'v', 'type': 'Object', },
  \     'jsdIEphemeral': {'kind': 'v', 'type': 'Object', },
  \     'mozIStorageService': {'kind': 'v', 'type': 'Object', },
  \     'nsIPrompt': {'kind': 'v', 'type': 'Object', },
  \     'jsdIActivationCallback': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMHTMLVideoElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIUrlClassifierCallback': {'kind': 'v', 'type': 'Object', },
  \     'nsIHttpUpgradeListener': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMHTMLFontElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIXULBuilderListener': {'kind': 'v', 'type': 'Object', },
  \     'nsIDownloader': {'kind': 'v', 'type': 'Object', },
  \     'fuelIApplication': {'kind': 'v', 'type': 'Object', },
  \     'nsIPrefLocalizedString': {'kind': 'v', 'type': 'Object', },
  \     'nsIOutputStream': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMCounter': {'kind': 'v', 'type': 'Object', },
  \     'nsINetUtil': {'kind': 'v', 'type': 'Object', },
  \     'jsdIObject': {'kind': 'v', 'type': 'Object', },
  \     'nsIStringBundleOverride': {'kind': 'v', 'type': 'Object', },
  \     'nsICertTreeItem': {'kind': 'v', 'type': 'Object', },
  \     'nsISecureBrowserUI': {'kind': 'v', 'type': 'Object', },
  \     'nsIRDFLiteral': {'kind': 'v', 'type': 'Object', },
  \     'nsICertPickDialogs': {'kind': 'v', 'type': 'Object', },
  \     'extIExtensionsCallback': {'kind': 'v', 'type': 'Object', },
  \     'nsISupportsFloat': {'kind': 'v', 'type': 'Object', },
  \     'nsITimedChannel': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMHTMLSelectElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIAutoCompleteInput': {'kind': 'v', 'type': 'Object', },
  \     'nsIContextMenuInfo': {'kind': 'v', 'type': 'Object', },
  \     'nsIMultiPartChannel': {'kind': 'v', 'type': 'Object', },
  \     'nsIUnicharLineInputStream': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMGeoPositionAddress': {'kind': 'v', 'type': 'Object', },
  \     'nsIINIParserWriter': {'kind': 'v', 'type': 'Object', },
  \     'nsITokenDialogs': {'kind': 'v', 'type': 'Object', },
  \     'nsILoginManager': {'kind': 'v', 'type': 'Object', },
  \     'nsISupportsPRUint64': {'kind': 'v', 'type': 'Object', },
  \     'nsIScriptableRegion': {'kind': 'v', 'type': 'Object', },
  \     'nsITransportSecurityInfo': {'kind': 'v', 'type': 'Object', },
  \     'mozIStorageAsyncStatement': {'kind': 'v', 'type': 'Object', },
  \     'mozIVisitInfo': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMHTMLFrameElement': {'kind': 'v', 'type': 'Object', },
  \     'nsITokenPasswordDialogs': {'kind': 'v', 'type': 'Object', },
  \     'nsIDataSignatureVerifier': {'kind': 'v', 'type': 'Object', },
  \     'jsdIExecutionHook': {'kind': 'v', 'type': 'Object', },
  \     'nsINavBookmarkObserver': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMPopupBlockedEvent': {'kind': 'v', 'type': 'Object', },
  \     'nsIFeedWriter': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGFECompositeElement': {'kind': 'v', 'type': 'Object', },
  \     'nsISupportsChar': {'kind': 'v', 'type': 'Object', },
  \     'nsISelectionPrivate': {'kind': 'v', 'type': 'Object', },
  \     'nsIXPCConstructor': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGZoomEvent': {'kind': 'v', 'type': 'Object', },
  \     'nsICancelable': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMHTMLCanvasElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIJARChannel': {'kind': 'v', 'type': 'Object', },
  \     'nsIMemory': {'kind': 'v', 'type': 'Object', },
  \     'nsICustomEventInit': {'kind': 'v', 'type': 'Object', },
  \     'nsIBinaryOutputStream': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMDOMStringList': {'kind': 'v', 'type': 'Object', },
  \     'nsIAccessibleHyperText': {'kind': 'v', 'type': 'Object', },
  \     'nsIExceptionService': {'kind': 'v', 'type': 'Object', },
  \     'nsITreeColumns': {'kind': 'v', 'type': 'Object', },
  \     'nsIFileOutputStream': {'kind': 'v', 'type': 'Object', },
  \     'nsIStreamBufferAccess': {'kind': 'v', 'type': 'Object', },
  \     'nsIThreadInternal': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMCSSMediaRule': {'kind': 'v', 'type': 'Object', },
  \     'nsIErrorService': {'kind': 'v', 'type': 'Object', },
  \     'nsIRDFInMemoryDataSource': {'kind': 'v', 'type': 'Object', },
  \     'nsIFeed': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMXULRelatedElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIAccessibleProvider': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMHTMLPreElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMTouchEvent': {'kind': 'v', 'type': 'Object', },
  \     'nsIJumpListBuilder': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMMozCSSKeyframeRule': {'kind': 'v', 'type': 'Object', },
  \     'nsIExternalURLHandlerService': {'kind': 'v', 'type': 'Object', },
  \     'nsIAccessibleSelectable': {'kind': 'v', 'type': 'Object', },
  \     'nsPICommandUpdater': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMDocumentType': {'kind': 'v', 'type': 'Object', },
  \     'nsIExternalProtocolService': {'kind': 'v', 'type': 'Object', },
  \     'nsIPrivateBrowsingService': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMMozSmsEvent': {'kind': 'v', 'type': 'Object', },
  \     'nsIUTF8ConverterService': {'kind': 'v', 'type': 'Object', },
  \     'nsIDeviceMotion': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMDOMException': {'kind': 'v', 'type': 'Object', },
  \     'mozIStoragePendingStatement': {'kind': 'v', 'type': 'Object', },
  \     'nsIStreamConverter': {'kind': 'v', 'type': 'Object', },
  \     'nsIContentViewerContainer': {'kind': 'v', 'type': 'Object', },
  \     'nsIThreadPool': {'kind': 'v', 'type': 'Object', },
  \     'nsIAccessibleStateChangeEvent': {'kind': 'v', 'type': 'Object', },
  \     'nsICookie2': {'kind': 'v', 'type': 'Object', },
  \     'nsIPKCS11ModuleDB': {'kind': 'v', 'type': 'Object', },
  \     'nsIOCSPResponder': {'kind': 'v', 'type': 'Object', },
  \     'inICSSValueSearch': {'kind': 'v', 'type': 'Object', },
  \     'nsIRandomGenerator': {'kind': 'v', 'type': 'Object', },
  \     'nsIPopStateEventInit': {'kind': 'v', 'type': 'Object', },
  \     'nsIAccessibleTextChangeEvent': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMCDATASection': {'kind': 'v', 'type': 'Object', },
  \     'nsIProtocolProxyFilter': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMXULContainerItemElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIJSEngineTelemetryStats': {'kind': 'v', 'type': 'Object', },
  \     'nsISSLErrorListener': {'kind': 'v', 'type': 'Object', },
  \     'nsIContentHandler': {'kind': 'v', 'type': 'Object', },
  \     'nsITimerCallback': {'kind': 'v', 'type': 'Object', },
  \     'nsIMutableArray': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMOfflineResourceList': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGFETileElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIInputStreamCallback': {'kind': 'v', 'type': 'Object', },
  \     'nsIURIClassifierCallback': {'kind': 'v', 'type': 'Object', },
  \     'nsIDownloadProgressListener': {'kind': 'v', 'type': 'Object', },
  \     'nsISHEntry': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMMediaError': {'kind': 'v', 'type': 'Object', },
  \     'nsITreeContentView': {'kind': 'v', 'type': 'Object', },
  \     'nsIWebGLShaderPrecisionFormat': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMGeoPositionCallback': {'kind': 'v', 'type': 'Object', },
  \     'nsIAccessibleEditableText': {'kind': 'v', 'type': 'Object', },
  \     'nsIHashChangeEventInit': {'kind': 'v', 'type': 'Object', },
  \     'nsISupportsPRBool': {'kind': 'v', 'type': 'Object', },
  \     'nsIGSettingsService': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMAttr': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMMouseEvent': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIAuthInformation': {'kind': 'v', 'type': 'Object', },
  \     'nsIProfileLock': {'kind': 'v', 'type': 'Object', },
  \     'nsIAutoCompleteSimpleResultListener': {'kind': 'v', 'type': 'Object', },
  \     'nsISystemProxySettings': {'kind': 'v', 'type': 'Object', },
  \     'nsITreeItemFrameMessageManager': {'kind': 'v', 'type': 'Object', },
  \     'nsIFind': {'kind': 'v', 'type': 'Object', },
  \     'nsIXTFPrivate': {'kind': 'v', 'type': 'Object', },
  \     'nsIPlaintextEditor': {'kind': 'v', 'type': 'Object', },
  \     'nsIJetpackService': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGPathSegLinetoVerticalAbs': {'kind': 'v', 'type': 'Object', },
  \     'nsIChromeFrameMessageManager': {'kind': 'v', 'type': 'Object', },
  \     'nsIAccessibleRelation': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGEllipseElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIRDFInferDataSource': {'kind': 'v', 'type': 'Object', },
  \     'nsIScrollable': {'kind': 'v', 'type': 'Object', },
  \     'amIInstallCallback': {'kind': 'v', 'type': 'Object', },
  \     'nsIXTFAttributeHandler': {'kind': 'v', 'type': 'Object', },
  \     'nsIWebBrowserPersist': {'kind': 'v', 'type': 'Object', },
  \     'nsISupportsWeakReference': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMHTMLAreaElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIRDFRemoteDataSource': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGPathSegLinetoHorizontalAbs': {'kind': 'v', 'type': 'Object', },
  \     'nsISAXAttributes': {'kind': 'v', 'type': 'Object', },
  \     'nsIClipboardDragDropHooks': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMRect': {'kind': 'v', 'type': 'Object', },
  \     'nsICRLManager': {'kind': 'v', 'type': 'Object', },
  \     'imgIEncoder': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMCSS2Properties': {'kind': 'v', 'type': 'Object', },
  \     'nsISearchEngine': {'kind': 'v', 'type': 'Object', },
  \     'nsIUrlListManagerCallback': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMGlobalPropertyInitializer': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMXPathNamespace': {'kind': 'v', 'type': 'Object', },
  \     'nsIContentPermissionPrompt': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMHTMLHRElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMCloseEvent': {'kind': 'v', 'type': 'Object', },
  \     'fuelIBookmarkRoots': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMPkcs11': {'kind': 'v', 'type': 'Object', },
  \     'nsIXULTemplateRuleFilter': {'kind': 'v', 'type': 'Object', },
  \     'nsIIDBKeyRange': {'kind': 'v', 'type': 'Object', },
  \     'nsISAXErrorHandler': {'kind': 'v', 'type': 'Object', },
  \     'nsIHTMLObjectResizer': {'kind': 'v', 'type': 'Object', },
  \     'nsIBlocklistPrompt': {'kind': 'v', 'type': 'Object', },
  \     'nsIXMLContentBuilder': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMDeviceMotionEvent': {'kind': 'v', 'type': 'Object', },
  \     'nsIRDFXMLSink': {'kind': 'v', 'type': 'Object', },
  \     'nsIClipboard': {'kind': 'v', 'type': 'Object', },
  \     'nsIEditorMailSupport': {'kind': 'v', 'type': 'Object', },
  \     'inIDOMUtils': {'kind': 'v', 'type': 'Object', },
  \     'nsIToolkitProfileService': {'kind': 'v', 'type': 'Object', },
  \     'nsIRandomAccessIterator': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMPageTransitionEvent': {'kind': 'v', 'type': 'Object', },
  \     'nsICookiePermission': {'kind': 'v', 'type': 'Object', },
  \     'nsICache': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMNavigatorDesktopNotification': {'kind': 'v', 'type': 'Object', },
  \     'nsIContentPolicy': {'kind': 'v', 'type': 'Object', },
  \     'nsIWyciwygChannel': {'kind': 'v', 'type': 'Object', },
  \     'nsIHelperAppLauncher': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMCharacterData': {'kind': 'v', 'type': 'Object', },
  \     'nsITransaction': {'kind': 'v', 'type': 'Object', },
  \     'nsIRDFContainerUtils': {'kind': 'v', 'type': 'Object', },
  \     'nsIRelativeFilePref': {'kind': 'v', 'type': 'Object', },
  \     'mozIStorageConnection': {'kind': 'v', 'type': 'Object', },
  \     'nsPIPlacesHistoryListenersNotifier': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMHTMLCollection': {'kind': 'v', 'type': 'Object', },
  \     'nsIURIContentListener': {'kind': 'v', 'type': 'Object', },
  \     'nsIRDFObserver': {'kind': 'v', 'type': 'Object', },
  \     'nsIWebGLBuffer': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMPlugin': {'kind': 'v', 'type': 'Object', },
  \     'nsIWebBrowser': {'kind': 'v', 'type': 'Object', },
  \     'nsIRDFXMLSource': {'kind': 'v', 'type': 'Object', },
  \     'nsIAccessibleWin32Object': {'kind': 'v', 'type': 'Object', },
  \     'nsIXULAppInfo': {'kind': 'v', 'type': 'Object', },
  \     'nsICookieManager2': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGTextElement': {'kind': 'v', 'type': 'Object', },
  \     'jsdIFilter': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMCSSStyleRule': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMClientInformation': {'kind': 'v', 'type': 'Object', },
  \     'nsIXULRuntime': {'kind': 'v', 'type': 'Object', },
  \     'nsIContentViewer': {'kind': 'v', 'type': 'Object', },
  \     'nsIApplicationCache': {'kind': 'v', 'type': 'Object', },
  \     'nsIStreamConverterService': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGFEDistantLightElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIHTTPHeaderListener': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMPerformanceNavigation': {'kind': 'v', 'type': 'Object', },
  \     'nsIWebGLUniformLocation': {'kind': 'v', 'type': 'Object', },
  \     'nsIParentChannel': {'kind': 'v', 'type': 'Object', },
  \     'nsIWebBrowserChrome2': {'kind': 'v', 'type': 'Object', },
  \     'nsIFileProtocolHandler': {'kind': 'v', 'type': 'Object', },
  \     'nsIHTMLInlineTableEditor': {'kind': 'v', 'type': 'Object', },
  \     'nsIAutoCompleteController': {'kind': 'v', 'type': 'Object', },
  \     'nsISupportsPriority': {'kind': 'v', 'type': 'Object', },
  \     'nsIPrefBranch': {'kind': 'v', 'type': 'Object', },
  \     'nsIBrowserHistory': {'kind': 'v', 'type': 'Object', },
  \     'amIWebInstaller': {'kind': 'v', 'type': 'Object', },
  \     'nsISelectionListener': {'kind': 'v', 'type': 'Object', },
  \     'nsIWebHandlerApp': {'kind': 'v', 'type': 'Object', },
  \     'nsICacheService': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMStorageIndexedDB': {'kind': 'v', 'type': 'Object', },
  \     'jsdIScriptHook': {'kind': 'v', 'type': 'Object', },
  \     'nsIWindowDataSource': {'kind': 'v', 'type': 'Object', },
  \     'nsIAccessibleApplication': {'kind': 'v', 'type': 'Object', },
  \     'nsIStreamLoaderObserver': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMHTMLElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIXTFElementFactory': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMHTMLMediaElement': {'kind': 'v', 'type': 'Object', },
  \     'nsICharsetConverterManager': {'kind': 'v', 'type': 'Object', },
  \     'fuelIBookmarkFolder': {'kind': 'v', 'type': 'Object', },
  \     'nsIInputStreamTee': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMNodeSelector': {'kind': 'v', 'type': 'Object', },
  \     'nsIHTMLMenu': {'kind': 'v', 'type': 'Object', },
  \     'nsIWritableVariant': {'kind': 'v', 'type': 'Object', },
  \     'nsIFontEnumerator': {'kind': 'v', 'type': 'Object', },
  \     'nsIWindowCreator': {'kind': 'v', 'type': 'Object', },
  \     'nsIINIParserFactory': {'kind': 'v', 'type': 'Object', },
  \     'mozIJSSubScriptLoader': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGPathSegCurvetoCubicSmoothAbs': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMDesktopNotification': {'kind': 'v', 'type': 'Object', },
  \     'nsIScreen_MOZILLA_2_0_BRANCH': {'kind': 'v', 'type': 'Object', },
  \     'nsIPKCS11Module': {'kind': 'v', 'type': 'Object', },
  \     'nsISHEntryInternal': {'kind': 'v', 'type': 'Object', },
  \     'nsIOfflineCacheUpdateService': {'kind': 'v', 'type': 'Object', },
  \     'nsIChannel': {'kind': 'v', 'type': 'Object', },
  \     'nsIProtocolProxyService2': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMParser': {'kind': 'v', 'type': 'Object', },
  \     'imgILoader': {'kind': 'v', 'type': 'Object', },
  \     'nsIWebSocket': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMCSSPageRule': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGAnimatedTransformList': {'kind': 'v', 'type': 'Object', },
  \     'nsISliderListener': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGGElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIBrowserGlue': {'kind': 'v', 'type': 'Object', },
  \     'nsIExternalProtocolHandler': {'kind': 'v', 'type': 'Object', },
  \     'nsIXTFElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIFilePicker': {'kind': 'v', 'type': 'Object', },
  \     'nsIPropertyElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMGeoPositionErrorCallback': {'kind': 'v', 'type': 'Object', },
  \     'nsIRedirectResultListener': {'kind': 'v', 'type': 'Object', },
  \     'nsIAccessibleEvent': {'kind': 'v', 'type': 'Object', },
  \     'nsIExtendedExpatSink': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMHTMLOptionsCollection': {'kind': 'v', 'type': 'Object', },
  \     'nsISessionStartup': {'kind': 'v', 'type': 'Object', },
  \     'nsIWindowMediator': {'kind': 'v', 'type': 'Object', },
  \     'nsIDocumentLoaderFactory': {'kind': 'v', 'type': 'Object', },
  \     'nsIProxiedChannel': {'kind': 'v', 'type': 'Object', },
  \     'nsIUnicodeNormalizer': {'kind': 'v', 'type': 'Object', },
  \     'nsIStreamListenerTee': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMMozBatteryManager': {'kind': 'v', 'type': 'Object', },
  \     'nsIBrowserProfileMigrator': {'kind': 'v', 'type': 'Object', },
  \     'nsIFeedGenerator': {'kind': 'v', 'type': 'Object', },
  \     'nsILoginManagerStorage': {'kind': 'v', 'type': 'Object', },
  \     'nsITransportEventSink': {'kind': 'v', 'type': 'Object', },
  \     'nsICommandHandler': {'kind': 'v', 'type': 'Object', },
  \     'nsIWebProgressListener': {'kind': 'v', 'type': 'Object', },
  \     'nsIScriptError': {'kind': 'v', 'type': 'Object', },
  \     'nsIX509CertList': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMXULCheckboxElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIEventTarget': {'kind': 'v', 'type': 'Object', },
  \     'nsIURLParser': {'kind': 'v', 'type': 'Object', },
  \     'mozISpellI18NManager': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGTextPathElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMStorageList': {'kind': 'v', 'type': 'Object', },
  \     'nsIModule': {'kind': 'v', 'type': 'Object', },
  \     'nsINativeAppSupport': {'kind': 'v', 'type': 'Object', },
  \     'nsICacheVisitor': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGMetadataElement': {'kind': 'v', 'type': 'Object', },
  \     'nsINavHistoryQueryOptions': {'kind': 'v', 'type': 'Object', },
  \     'nsIRDFDate': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGFEDisplacementMapElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMHTMLLIElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIWebGLShader': {'kind': 'v', 'type': 'Object', },
  \     'nsITransfer': {'kind': 'v', 'type': 'Object', },
  \     'nsIPrintProgress': {'kind': 'v', 'type': 'Object', },
  \     'nsIX509Cert3': {'kind': 'v', 'type': 'Object', },
  \     'nsIWindowsShellService': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMNSRGBAColor': {'kind': 'v', 'type': 'Object', },
  \     'nsIIDBFactory': {'kind': 'v', 'type': 'Object', },
  \     'nsIInterfaceRequestor': {'kind': 'v', 'type': 'Object', },
  \     'nsINestedURI': {'kind': 'v', 'type': 'Object', },
  \     'nsIServiceManager': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMHTMLOptGroupElement': {'kind': 'v', 'type': 'Object', },
  \     'nsICommandManager': {'kind': 'v', 'type': 'Object', },
  \     'nsIIDNService': {'kind': 'v', 'type': 'Object', },
  \     'nsIContentView': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMNotifyAudioAvailableEvent': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMHTMLTitleElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIMemoryReporter': {'kind': 'v', 'type': 'Object', },
  \     'nsIUnicharOutputStream': {'kind': 'v', 'type': 'Object', },
  \     'nsIDataType': {'kind': 'v', 'type': 'Object', },
  \     'nsIChromeRegistry': {'kind': 'v', 'type': 'Object', },
  \     'nsIJSON': {'kind': 'v', 'type': 'Object', },
  \     'nsINavHistoryVisitResultNode': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMCryptoDialogs': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGGradientElement': {'kind': 'v', 'type': 'Object', },
  \     'nsISAXDTDHandler': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGFEImageElement': {'kind': 'v', 'type': 'Object', },
  \     'nsINavHistoryContainerResultNode': {'kind': 'v', 'type': 'Object', },
  \     'nsIInputStreamPump': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMCSSStyleDeclaration': {'kind': 'v', 'type': 'Object', },
  \     'nsISupportsPRInt64': {'kind': 'v', 'type': 'Object', },
  \     'nsIJSIID': {'kind': 'v', 'type': 'Object', },
  \     'nsIFeedTextConstruct': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMHTMLTableSectionElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIAccessibleRetrieval': {'kind': 'v', 'type': 'Object', },
  \     'imgICache': {'kind': 'v', 'type': 'Object', },
  \     'nsIEditorIMESupport': {'kind': 'v', 'type': 'Object', },
  \     'nsIContainerBoxObject': {'kind': 'v', 'type': 'Object', },
  \     'nsIProtocolProxyService': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMHTMLBodyElement': {'kind': 'v', 'type': 'Object', },
  \     'nsISupportsPRUint8': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGStyleElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIURILoader': {'kind': 'v', 'type': 'Object', },
  \     'nsIMIMEInfo': {'kind': 'v', 'type': 'Object', },
  \     'nsIEditorLogging': {'kind': 'v', 'type': 'Object', },
  \     'nsIWebGLProgram': {'kind': 'v', 'type': 'Object', },
  \     'nsITransferable': {'kind': 'v', 'type': 'Object', },
  \     'nsIEditingSession': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMHTMLCommandElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMHTMLDocument': {'kind': 'v', 'type': 'Object', },
  \     'nsICRLInfo': {'kind': 'v', 'type': 'Object', },
  \     'nsIRDFPurgeableDataSource': {'kind': 'v', 'type': 'Object', },
  \     'nsIStyleSheetService': {'kind': 'v', 'type': 'Object', },
  \     'nsIUrlClassifierUtils': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMCustomEvent': {'kind': 'v', 'type': 'Object', },
  \     'nsISupportsPRUint16': {'kind': 'v', 'type': 'Object', },
  \     'nsIUrlListManager': {'kind': 'v', 'type': 'Object', },
  \     'imgIRequest': {'kind': 'v', 'type': 'Object', },
  \     'nsILocaleService': {'kind': 'v', 'type': 'Object', },
  \     'nsIRequestObserver': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGFEComponentTransferElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIRecyclingAllocator': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMPerformance': {'kind': 'v', 'type': 'Object', },
  \     'nsISelectionController': {'kind': 'v', 'type': 'Object', },
  \     'nsIIDBOpenDBRequest': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGStylable': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMHTMLIFrameElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIXULBrowserWindow': {'kind': 'v', 'type': 'Object', },
  \     'nsIUpdateManager': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGPointList': {'kind': 'v', 'type': 'Object', },
  \     'nsIWebGLRenderbuffer': {'kind': 'v', 'type': 'Object', },
  \     'nsIUserInfo': {'kind': 'v', 'type': 'Object', },
  \     'nsISSLSocketControl': {'kind': 'v', 'type': 'Object', },
  \     'nsITaskbarPreview': {'kind': 'v', 'type': 'Object', },
  \     'nsICacheEntryDescriptor': {'kind': 'v', 'type': 'Object', },
  \     'nsIHTMLAbsPosEditor': {'kind': 'v', 'type': 'Object', },
  \     'nsIXSLTProcessor': {'kind': 'v', 'type': 'Object', },
  \     'nsIAutoCompleteObserver': {'kind': 'v', 'type': 'Object', },
  \     'nsIFormHistory2': {'kind': 'v', 'type': 'Object', },
  \     'nsISecurityWarningDialogs': {'kind': 'v', 'type': 'Object', },
  \     'nsIImageDocument': {'kind': 'v', 'type': 'Object', },
  \     'nsITransport': {'kind': 'v', 'type': 'Object', },
  \     'nsIMutable': {'kind': 'v', 'type': 'Object', },
  \     'jsdICallHook': {'kind': 'v', 'type': 'Object', },
  \     'nsIListBoxObject': {'kind': 'v', 'type': 'Object', },
  \     'nsITaskbarWindowPreview': {'kind': 'v', 'type': 'Object', },
  \     'nsIAccessibleScrollType': {'kind': 'v', 'type': 'Object', },
  \     'nsICategoryManager': {'kind': 'v', 'type': 'Object', },
  \     'nsIBidirectionalIterator': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMDOMTokenList': {'kind': 'v', 'type': 'Object', },
  \     'nsISmsService': {'kind': 'v', 'type': 'Object', },
  \     'nsIWindowMediatorListener': {'kind': 'v', 'type': 'Object', },
  \     'mozIStorageVacuumParticipant': {'kind': 'v', 'type': 'Object', },
  \     'nsISHistoryListener': {'kind': 'v', 'type': 'Object', },
  \     'mozIStorageCompletionCallback': {'kind': 'v', 'type': 'Object', },
  \     'nsIEditor': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMXULTextBoxElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMHistory': {'kind': 'v', 'type': 'Object', },
  \     'nsIZipEntry': {'kind': 'v', 'type': 'Object', },
  \     'nsIWebContentHandlerRegistrar': {'kind': 'v', 'type': 'Object', },
  \     'nsIExternalSharingAppService': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMMediaQueryList': {'kind': 'v', 'type': 'Object', },
  \     'nsIUnicharInputStream': {'kind': 'v', 'type': 'Object', },
  \     'rdfITripleVisitor': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGAltGlyphElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIPopupBoxObject': {'kind': 'v', 'type': 'Object', },
  \     'nsIRDFService': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMXULSelectControlElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIAccessibleTableCell': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMCanvasPattern': {'kind': 'v', 'type': 'Object', },
  \     'nsINavHistoryObserver': {'kind': 'v', 'type': 'Object', },
  \     'nsISupportsVoid': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMCSSImportRule': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMScrollAreaEvent': {'kind': 'v', 'type': 'Object', },
  \     'nsIGfxInfo': {'kind': 'v', 'type': 'Object', },
  \     'nsIGIOMimeApp': {'kind': 'v', 'type': 'Object', },
  \     'nsIHttpEventSink': {'kind': 'v', 'type': 'Object', },
  \     'nsIConsoleMessage': {'kind': 'v', 'type': 'Object', },
  \     'nsISAXLocator': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMHTMLSourceElement': {'kind': 'v', 'type': 'Object', },
  \     'IJSDebugger': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGMaskElement': {'kind': 'v', 'type': 'Object', },
  \     'nsICookiePromptService': {'kind': 'v', 'type': 'Object', },
  \     'nsIUrlClassifierPrefixSet': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMStorageEventObsolete': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMMediaQueryListListener': {'kind': 'v', 'type': 'Object', },
  \     'nsPIDNSService': {'kind': 'v', 'type': 'Object', },
  \     'nsIFeedPerson': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMWebGLRenderingContext': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMEvent': {'kind': 'v', 'type': 'Object', },
  \     'nsINavHistoryService': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMDesktopNotificationCenter': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMHTMLBRElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIStrictTransportSecurityService': {'kind': 'v', 'type': 'Object', },
  \     'nsIHapticFeedback': {'kind': 'v', 'type': 'Object', },
  \     'nsICertificateDialogs': {'kind': 'v', 'type': 'Object', },
  \     'nsIIDBTransaction': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMHTMLMetaElement': {'kind': 'v', 'type': 'Object', },
  \     'mozIStorageStatementParams': {'kind': 'v', 'type': 'Object', },
  \     'nsIXULWindow': {'kind': 'v', 'type': 'Object', },
  \     'xpcIJSGetFactory': {'kind': 'v', 'type': 'Object', },
  \     'fuelIWindow': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMHTMLAppletElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIAsyncStreamCopier': {'kind': 'v', 'type': 'Object', },
  \     'mozIStorageServiceQuotaManagement': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGAnimatedEnumeration': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMCSSValueList': {'kind': 'v', 'type': 'Object', },
  \     'nsIAutoCompleteSearch': {'kind': 'v', 'type': 'Object', },
  \     'nsIProxyObjectManager': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMHashChangeEvent': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMComment': {'kind': 'v', 'type': 'Object', },
  \     'nsISecretDecoderRingConfig': {'kind': 'v', 'type': 'Object', },
  \     'nsIXULTreeBuilderObserver': {'kind': 'v', 'type': 'Object', },
  \     'nsIContentFilter': {'kind': 'v', 'type': 'Object', },
  \     'nsIASN1Tree': {'kind': 'v', 'type': 'Object', },
  \     'nsIIMEPicker': {'kind': 'v', 'type': 'Object', },
  \     'extISessionStorage': {'kind': 'v', 'type': 'Object', },
  \     'mozIStorageStatementRow': {'kind': 'v', 'type': 'Object', },
  \     'nsIContentViewManager': {'kind': 'v', 'type': 'Object', },
  \     'nsIIDBObjectStore': {'kind': 'v', 'type': 'Object', },
  \     'mozISpellCheckingEngine': {'kind': 'v', 'type': 'Object', },
  \     'extIConsole': {'kind': 'v', 'type': 'Object', },
  \     'nsIApplicationCacheContainer': {'kind': 'v', 'type': 'Object', },
  \     'nsIContentPrefCallback': {'kind': 'v', 'type': 'Object', },
  \     'nsIUrlClassifierUpdateObserver': {'kind': 'v', 'type': 'Object', },
  \     'nsIIdleService': {'kind': 'v', 'type': 'Object', },
  \     'nsIClipboardHelper': {'kind': 'v', 'type': 'Object', },
  \     'nsIWindowCreator2': {'kind': 'v', 'type': 'Object', },
  \     'nsIStringBundle': {'kind': 'v', 'type': 'Object', },
  \     'nsIAppShellService': {'kind': 'v', 'type': 'Object', },
  \     'nsIProfile': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGRect': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGPathSegMovetoRel': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGPathSegLinetoHorizontalRel': {'kind': 'v', 'type': 'Object', },
  \     'nsIPromptService': {'kind': 'v', 'type': 'Object', },
  \     'nsIJARProtocolHandler': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMXPathExpression': {'kind': 'v', 'type': 'Object', },
  \     'nsIVariant': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGAnimatedBoolean': {'kind': 'v', 'type': 'Object', },
  \     'jsdIFilterEnumerator': {'kind': 'v', 'type': 'Object', },
  \     'nsITreeColumn': {'kind': 'v', 'type': 'Object', },
  \     'nsIAutoCompletePopup': {'kind': 'v', 'type': 'Object', },
  \     'nsIAccessibleCaretMoveEvent': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGAnimationElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIDocumentEncoderNodeFixup': {'kind': 'v', 'type': 'Object', },
  \     'nsIToolkitProfile': {'kind': 'v', 'type': 'Object', },
  \     'nsIWebBrowserPrint': {'kind': 'v', 'type': 'Object', },
  \     'nsIGlobalHistory2': {'kind': 'v', 'type': 'Object', },
  \     'nsISharingHandlerApp': {'kind': 'v', 'type': 'Object', },
  \     'nsIHttpChannelInternal': {'kind': 'v', 'type': 'Object', },
  \     'nsIWebBrowserFindInFrames': {'kind': 'v', 'type': 'Object', },
  \     'nsIXPCComponents_Constructor': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGNumber': {'kind': 'v', 'type': 'Object', },
  \     'nsISAXXMLFilter': {'kind': 'v', 'type': 'Object', },
  \     'nsINavHistoryFullVisitResultNode': {'kind': 'v', 'type': 'Object', },
  \     'nsIRedirectChannelRegistrar': {'kind': 'v', 'type': 'Object', },
  \     'nsIDirIndexListener': {'kind': 'v', 'type': 'Object', },
  \     'nsISAXContentHandler': {'kind': 'v', 'type': 'Object', },
  \     'nsIExternalHelperAppService': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGTitleElement': {'kind': 'v', 'type': 'Object', },
  \     'nsICurrentCharsetListener': {'kind': 'v', 'type': 'Object', },
  \     'nsIMemoryMultiReporter': {'kind': 'v', 'type': 'Object', },
  \     'nsISocketProvider': {'kind': 'v', 'type': 'Object', },
  \     'nsIThreadObserver': {'kind': 'v', 'type': 'Object', },
  \     'nsIStringInputStream': {'kind': 'v', 'type': 'Object', },
  \     'nsIPhonetic': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMLoadStatus': {'kind': 'v', 'type': 'Object', },
  \     'nsIThread': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMCSSValue': {'kind': 'v', 'type': 'Object', },
  \     'nsICookieAcceptDialog': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGFEBlendElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIMenuBoxObject': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGFEFuncRElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMNSEvent': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGPathSegClosePath': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGFEGaussianBlurElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMHTMLFieldSetElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGLinearGradientElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMStorage': {'kind': 'v', 'type': 'Object', },
  \     'nsIStreamLoader': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMWindowCollection': {'kind': 'v', 'type': 'Object', },
  \     'nsITextScroll': {'kind': 'v', 'type': 'Object', },
  \     'mozIAsyncHistory': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGRadialGradientElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIVersionComparator': {'kind': 'v', 'type': 'Object', },
  \     'nsIBrowserDOMWindow': {'kind': 'v', 'type': 'Object', },
  \     'nsIWindowWatcher': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMXPathException': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMAnimationEvent': {'kind': 'v', 'type': 'Object', },
  \     'extIApplication': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMCrypto': {'kind': 'v', 'type': 'Object', },
  \     'nsIAccessible': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMXULLabeledControlElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIRDFInt': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMMutationEvent': {'kind': 'v', 'type': 'Object', },
  \     'nsIBufferedInputStream': {'kind': 'v', 'type': 'Object', },
  \     'nsICertTree': {'kind': 'v', 'type': 'Object', },
  \     'nsIComponentRegistrar': {'kind': 'v', 'type': 'Object', },
  \     'nsIFileChannel': {'kind': 'v', 'type': 'Object', },
  \     'nsIPluginHost': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGPathElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIHttpAuthenticator': {'kind': 'v', 'type': 'Object', },
  \     'nsICacheListener': {'kind': 'v', 'type': 'Object', },
  \     'mozIStorageResultSet': {'kind': 'v', 'type': 'Object', },
  \     'mozIStorageValueArray': {'kind': 'v', 'type': 'Object', },
  \     'nsIStreamCipher': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMXULCommandEvent': {'kind': 'v', 'type': 'Object', },
  \     'nsICrashReporter': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMHTMLStyleElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIProxiedProtocolHandler': {'kind': 'v', 'type': 'Object', },
  \     'nsISupportsString': {'kind': 'v', 'type': 'Object', },
  \     'nsISafeOutputStream': {'kind': 'v', 'type': 'Object', },
  \     'inIDeepTreeWalker': {'kind': 'v', 'type': 'Object', },
  \     'nsINavHistoryResultTreeViewer': {'kind': 'v', 'type': 'Object', },
  \     'nsIDocShellTreeItem': {'kind': 'v', 'type': 'Object', },
  \     'nsILocalFileWin': {'kind': 'v', 'type': 'Object', },
  \     'nsIPrincipal': {'kind': 'v', 'type': 'Object', },
  \     'nsIRequest': {'kind': 'v', 'type': 'Object', },
  \     'nsIAlertsService': {'kind': 'v', 'type': 'Object', },
  \     'nsITaggingService': {'kind': 'v', 'type': 'Object', },
  \     'nsIXMLHttpRequestEventTarget': {'kind': 'v', 'type': 'Object', },
  \     'nsICMSMessageErrors': {'kind': 'v', 'type': 'Object', },
  \     'nsIPrefBranch2': {'kind': 'v', 'type': 'Object', },
  \     'inISearchObserver': {'kind': 'v', 'type': 'Object', },
  \     'nsITextToSubURI': {'kind': 'v', 'type': 'Object', },
  \     'nsITouchEventReceiver': {'kind': 'v', 'type': 'Object', },
  \     'nsIUTF8StringEnumerator': {'kind': 'v', 'type': 'Object', },
  \     'nsISupportsID': {'kind': 'v', 'type': 'Object', },
  \     'mozIStorageBaseStatement': {'kind': 'v', 'type': 'Object', },
  \     'nsIResProtocolHandler': {'kind': 'v', 'type': 'Object', },
  \     'nsIServerSocketListener': {'kind': 'v', 'type': 'Object', },
  \     'nsIAccessNode': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGPathSegCurvetoQuadraticAbs': {'kind': 'v', 'type': 'Object', },
  \     'nsIWebNavigation': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMClientRect': {'kind': 'v', 'type': 'Object', },
  \     'nsIUpdatePrompt': {'kind': 'v', 'type': 'Object', },
  \     'nsIXPCComponents_ID': {'kind': 'v', 'type': 'Object', },
  \     'nsITooltipTextProvider': {'kind': 'v', 'type': 'Object', },
  \     'nsIXPCComponents_Classes': {'kind': 'v', 'type': 'Object', },
  \     'nsIEventSource': {'kind': 'v', 'type': 'Object', },
  \     'jsdIProperty': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMHTMLLegendElement': {'kind': 'v', 'type': 'Object', },
  \     'nsICloseEventInit': {'kind': 'v', 'type': 'Object', },
  \     'nsINavHistoryQueryResultNode': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGDefsElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIBaseWindow': {'kind': 'v', 'type': 'Object', },
  \     'nsIImageLoadingContent': {'kind': 'v', 'type': 'Object', },
  \     'nsIPrefService': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMLSProgressEvent': {'kind': 'v', 'type': 'Object', },
  \     'mozIStorageRow': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMGeoPosition': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGPathSeg': {'kind': 'v', 'type': 'Object', },
  \     'fuelIBrowserTab': {'kind': 'v', 'type': 'Object', },
  \     'nsISSLCertErrorDialog': {'kind': 'v', 'type': 'Object', },
  \     'nsIScriptChannel': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMBarProp': {'kind': 'v', 'type': 'Object', },
  \     'nsIHttpHeaderVisitor': {'kind': 'v', 'type': 'Object', },
  \     'fuelIAnnotations': {'kind': 'v', 'type': 'Object', },
  \     'nsIWindowProvider': {'kind': 'v', 'type': 'Object', },
  \     'nsIWebGLExtensionLoseContext': {'kind': 'v', 'type': 'Object', },
  \     'nsIPrintSettingsService': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMText': {'kind': 'v', 'type': 'Object', },
  \     'nsIPKCS11': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGFEFuncAElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIObjectInputStream': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMMozURLProperty': {'kind': 'v', 'type': 'Object', },
  \     'nsIDirIndex': {'kind': 'v', 'type': 'Object', },
  \     'nsPIExternalAppLauncher': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGFEFloodElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIFormFillController': {'kind': 'v', 'type': 'Object', },
  \     'nsIMIMEInputStream': {'kind': 'v', 'type': 'Object', },
  \     'nsIRecentBadCertsService': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMXULMenuListElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIEditActionListener': {'kind': 'v', 'type': 'Object', },
  \     'nsIUnicharStreamLoaderObserver': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMHTMLObjectElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMLocation': {'kind': 'v', 'type': 'Object', },
  \     'nsIDownload': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMXULDescriptionElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIURL': {'kind': 'v', 'type': 'Object', },
  \     'nsIWebGLTexture': {'kind': 'v', 'type': 'Object', },
  \     'nsIMultiplexInputStream': {'kind': 'v', 'type': 'Object', },
  \     'nsIQueryContentEventResult': {'kind': 'v', 'type': 'Object', },
  \     'nsIThreadEventFilter': {'kind': 'v', 'type': 'Object', },
  \     'jsdIDebuggerService': {'kind': 'v', 'type': 'Object', },
  \     'nsIASN1Object': {'kind': 'v', 'type': 'Object', },
  \     'nsIDocShellTreeNode': {'kind': 'v', 'type': 'Object', },
  \     'nsIWebBrowserChrome': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMXULPopupElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIFrameRequestCallback': {'kind': 'v', 'type': 'Object', },
  \     'nsIHandlerApp': {'kind': 'v', 'type': 'Object', },
  \     'nsIByteRangeRequest': {'kind': 'v', 'type': 'Object', },
  \     'nsITelemetry': {'kind': 'v', 'type': 'Object', },
  \     'nsIPrintStatusFeedback': {'kind': 'v', 'type': 'Object', },
  \     'nsIDownloadHistory': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMRange': {'kind': 'v', 'type': 'Object', },
  \     'nsIAccessibleStates': {'kind': 'v', 'type': 'Object', },
  \     'nsIAtomService': {'kind': 'v', 'type': 'Object', },
  \     'nsIExceptionProvider': {'kind': 'v', 'type': 'Object', },
  \     'nsIAccessibleCoordinateType': {'kind': 'v', 'type': 'Object', },
  \     'nsIScriptableDateFormat': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMMozNavigatorBattery': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGAnimatedAngle': {'kind': 'v', 'type': 'Object', },
  \     'nsIDragService': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMXPathNSResolver': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMStorageManager': {'kind': 'v', 'type': 'Object', },
  \     'nsIFTPChannel': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGPathSegLinetoAbs': {'kind': 'v', 'type': 'Object', },
  \     'nsIStackFrame': {'kind': 'v', 'type': 'Object', },
  \     'nsIShellService': {'kind': 'v', 'type': 'Object', },
  \     'nsIEffectiveTLDService': {'kind': 'v', 'type': 'Object', },
  \     'nsINetworkLinkService': {'kind': 'v', 'type': 'Object', },
  \     'nsIToolkitChromeRegistry': {'kind': 'v', 'type': 'Object', },
  \     'extIExtensions': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGPathSegCurvetoQuadraticSmoothRel': {'kind': 'v', 'type': 'Object', },
  \     'nsIExpatSink': {'kind': 'v', 'type': 'Object', },
  \     'nsIPropertyBag': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMTimeRanges': {'kind': 'v', 'type': 'Object', },
  \     'nsIFeedElementBase': {'kind': 'v', 'type': 'Object', },
  \     'mozIStorageBindingParamsArray': {'kind': 'v', 'type': 'Object', },
  \     'nsIFormSigningDialog': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMProgressEvent': {'kind': 'v', 'type': 'Object', },
  \     'nsIAccessibleImage': {'kind': 'v', 'type': 'Object', },
  \     'nsITypeAheadFind': {'kind': 'v', 'type': 'Object', },
  \     'amIWebInstallInfo': {'kind': 'v', 'type': 'Object', },
  \     'nsIInlineSpellChecker': {'kind': 'v', 'type': 'Object', },
  \     'nsIMenuBuilder': {'kind': 'v', 'type': 'Object', },
  \     'nsIDownloadManager': {'kind': 'v', 'type': 'Object', },
  \     'nsIProxyAutoConfig': {'kind': 'v', 'type': 'Object', },
  \     'nsIAsyncInputStream': {'kind': 'v', 'type': 'Object', },
  \     'nsIAuthPrompt2': {'kind': 'v', 'type': 'Object', },
  \     'nsIProfileChangeStatus': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGComponentTransferFunctionElement': {'kind': 'v', 'type': 'Object', },
  \     'nsISupportsArray': {'kind': 'v', 'type': 'Object', },
  \     'nsIXPCComponents_Exception': {'kind': 'v', 'type': 'Object', },
  \     'nsIPromptFactory': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMWindow': {'kind': 'v', 'type': 'Object', },
  \     'nsIHttpActivityDistributor': {'kind': 'v', 'type': 'Object', },
  \     'nsITaskbarPreviewController': {'kind': 'v', 'type': 'Object', },
  \     'nsIMemoryReporterManager': {'kind': 'v', 'type': 'Object', },
  \     'nsIDragSession': {'kind': 'v', 'type': 'Object', },
  \     'nsIIDBVersionChangeEvent': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMNSRange': {'kind': 'v', 'type': 'Object', },
  \     'nsIApplicationUpdateService': {'kind': 'v', 'type': 'Object', },
  \     'nsIPluginTag': {'kind': 'v', 'type': 'Object', },
  \     'nsIXULTemplateBuilder': {'kind': 'v', 'type': 'Object', },
  \     'nsISimpleUnicharStreamFactory': {'kind': 'v', 'type': 'Object', },
  \     'nsISemanticUnitScanner': {'kind': 'v', 'type': 'Object', },
  \     'nsIAccessibleTableChangeEvent': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMTouch': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMHTMLParagraphElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIDebug2': {'kind': 'v', 'type': 'Object', },
  \     'nsIClientAuthDialogs': {'kind': 'v', 'type': 'Object', },
  \     'nsIParentRedirectingChannel': {'kind': 'v', 'type': 'Object', },
  \     'nsIXPCComponents_InterfacesByID': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGTransformable': {'kind': 'v', 'type': 'Object', },
  \     'nsICanvasGLTexture': {'kind': 'v', 'type': 'Object', },
  \     'nsISyncMessageSender': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMValidityState': {'kind': 'v', 'type': 'Object', },
  \     'nsISerializationHelper': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMJSWindow': {'kind': 'v', 'type': 'Object', },
  \     'nsISyncJPAKE': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMNodeList': {'kind': 'v', 'type': 'Object', },
  \     'nsIInputStreamChannel': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMBlob': {'kind': 'v', 'type': 'Object', },
  \     'nsISecurityInfoProvider': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMKeyEvent': {'kind': 'v', 'type': 'Object', },
  \     'nsIGeolocationProvider': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGForeignObjectElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIIDBIndex': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMCSSUnknownRule': {'kind': 'v', 'type': 'Object', },
  \     'nsICommandController': {'kind': 'v', 'type': 'Object', },
  \     'nsIIOService2': {'kind': 'v', 'type': 'Object', },
  \     'nsIEditorBoxObject': {'kind': 'v', 'type': 'Object', },
  \     'nsIUpdateChecker': {'kind': 'v', 'type': 'Object', },
  \     'nsIStreamTransportService': {'kind': 'v', 'type': 'Object', },
  \     'nsIBadCertListener2': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSmartCardEvent': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMHTMLButtonElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMDataContainerEvent': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMPaintRequestList': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMMouseScrollEvent': {'kind': 'v', 'type': 'Object', },
  \     'nsIIFrameBoxObject': {'kind': 'v', 'type': 'Object', },
  \     'nsIOfflineCacheUpdateObserver': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMHTMLTableColElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIEventListenerInfo': {'kind': 'v', 'type': 'Object', },
  \     'mozIStorageProgressHandler': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMFile': {'kind': 'v', 'type': 'Object', },
  \     'nsIXMLHttpRequestUpload': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGTSpanElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIControllerContext': {'kind': 'v', 'type': 'Object', },
  \     'nsIUrlClassifierStreamUpdater': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGClipPathElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIDocumentEncoder': {'kind': 'v', 'type': 'Object', },
  \     'nsIXULContextMenuBuilder': {'kind': 'v', 'type': 'Object', },
  \     'nsPIPlacesDatabase': {'kind': 'v', 'type': 'Object', },
  \     'extIEvents': {'kind': 'v', 'type': 'Object', },
  \     'nsIINIParser': {'kind': 'v', 'type': 'Object', },
  \     'nsIXBLAccessible': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMEventListener': {'kind': 'v', 'type': 'Object', },
  \     'nsIIndexedDatabaseManager': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGAnimateTransformElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIPermission': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMStorageObsolete': {'kind': 'v', 'type': 'Object', },
  \     'nsIEditorObserver': {'kind': 'v', 'type': 'Object', },
  \     'nsICertVerificationListener': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMMessageEvent': {'kind': 'v', 'type': 'Object', },
  \     'nsIIOService': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMCanvasGradient': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMHTMLFormElement': {'kind': 'v', 'type': 'Object', },
  \     'nsISidebarExternal': {'kind': 'v', 'type': 'Object', },
  \     'nsITooltipListener': {'kind': 'v', 'type': 'Object', },
  \     'nsIWebBrowserChrome3': {'kind': 'v', 'type': 'Object', },
  \     'amIInstallTrigger': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGNumberList': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMWindowPerformance': {'kind': 'v', 'type': 'Object', },
  \     'nsIScriptableBase64Encoder': {'kind': 'v', 'type': 'Object', },
  \     'nsISAXLexicalHandler': {'kind': 'v', 'type': 'Object', },
  \     'nsISMimeCert': {'kind': 'v', 'type': 'Object', },
  \     'nsIAtom': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGPathSegArcRel': {'kind': 'v', 'type': 'Object', },
  \     'nsILoginInfo': {'kind': 'v', 'type': 'Object', },
  \     'nsIURIWithPrincipal': {'kind': 'v', 'type': 'Object', },
  \     'nsISaveAsCharset': {'kind': 'v', 'type': 'Object', },
  \     'amIWebInstallPrompt': {'kind': 'v', 'type': 'Object', },
  \     'nsICMSSecureMessage': {'kind': 'v', 'type': 'Object', },
  \     'nsIStringBundleService': {'kind': 'v', 'type': 'Object', },
  \     'nsIXULOverlayProvider': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGTransformList': {'kind': 'v', 'type': 'Object', },
  \     'nsINavHistoryResult': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMDOMImplementation': {'kind': 'v', 'type': 'Object', },
  \     'nsIScriptableUnicodeConverter': {'kind': 'v', 'type': 'Object', },
  \     'nsICollation': {'kind': 'v', 'type': 'Object', },
  \     'nsIComponentManager': {'kind': 'v', 'type': 'Object', },
  \     'nsIGConfService': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGAnimatedNumber': {'kind': 'v', 'type': 'Object', },
  \     'nsIProfileStartup': {'kind': 'v', 'type': 'Object', },
  \     'nsIUUIDGenerator': {'kind': 'v', 'type': 'Object', },
  \     'nsIControllerCommandGroup': {'kind': 'v', 'type': 'Object', },
  \     'nsIFaviconService': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMCompositionEvent': {'kind': 'v', 'type': 'Object', },
  \     'nsISessionStore': {'kind': 'v', 'type': 'Object', },
  \     'nsIRDFBlob': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMHTMLHeadElement': {'kind': 'v', 'type': 'Object', },
  \     'imgIContainerDebug': {'kind': 'v', 'type': 'Object', },
  \     'nsIASN1PrintableItem': {'kind': 'v', 'type': 'Object', },
  \     'nsIHttpChannelAuthProvider': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMHTMLMapElement': {'kind': 'v', 'type': 'Object', },
  \     'nsISupportsDouble': {'kind': 'v', 'type': 'Object', },
  \     'nsINSSErrorsService': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGFEColorMatrixElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIProtocolProxyCallback': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMHTMLLinkElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIXULSortService': {'kind': 'v', 'type': 'Object', },
  \     'nsIUploadChannel2': {'kind': 'v', 'type': 'Object', },
  \     'nsIRDFCompositeDataSource': {'kind': 'v', 'type': 'Object', },
  \     'nsIXULTreeBuilder': {'kind': 'v', 'type': 'Object', },
  \     'nsICacheInfoChannel': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMXULImageElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIX509Cert': {'kind': 'v', 'type': 'Object', },
  \     'nsICommandLineHandler': {'kind': 'v', 'type': 'Object', },
  \     'nsIFileURL': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMCSSMozDocumentRule': {'kind': 'v', 'type': 'Object', },
  \     'nsIFindService': {'kind': 'v', 'type': 'Object', },
  \     'nsIContentDispatchChooser': {'kind': 'v', 'type': 'Object', },
  \     'nsIHandlerInfo': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMXULControlElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIScreen': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMHTMLTableRowElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIWindowsRegKey': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMFontFace': {'kind': 'v', 'type': 'Object', },
  \     'nsIUrlClassifierHashCompleter': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMTimeEvent': {'kind': 'v', 'type': 'Object', },
  \     'nsIPrintProgressParams': {'kind': 'v', 'type': 'Object', },
  \     'nsISupportsPRInt16': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGMpathElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGException': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMDeviceRotationRate': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGFEMorphologyElement': {'kind': 'v', 'type': 'Object', },
  \     'nsILocale': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMHTMLMenuItemElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIClipboardCommands': {'kind': 'v', 'type': 'Object', },
  \     'nsINavHistoryQuery': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMMozCSSKeyframesRule': {'kind': 'v', 'type': 'Object', },
  \     'nsIXSLTException': {'kind': 'v', 'type': 'Object', },
  \     'nsIFTPEventSink': {'kind': 'v', 'type': 'Object', },
  \     'nsILivemarkService': {'kind': 'v', 'type': 'Object', },
  \     'nsIRequestObserverProxy': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGDocument': {'kind': 'v', 'type': 'Object', },
  \     'nsIX509CertValidity': {'kind': 'v', 'type': 'Object', },
  \     'nsIIdentityInfo': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMParserJS': {'kind': 'v', 'type': 'Object', },
  \     'nsIWebGLActiveInfo': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMXULContainerElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIClipboardOwner': {'kind': 'v', 'type': 'Object', },
  \     'nsIXULChromeRegistry': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSimpleGestureEvent': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMCRMFObject': {'kind': 'v', 'type': 'Object', },
  \     'nsIURI': {'kind': 'v', 'type': 'Object', },
  \     'nsITaskbarTabPreview': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGMatrix': {'kind': 'v', 'type': 'Object', },
  \     'nsIUrlClassifierHashCompleterCallback': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMHTMLTableElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGEvent': {'kind': 'v', 'type': 'Object', },
  \     'nsIContextMenuListener2': {'kind': 'v', 'type': 'Object', },
  \     'nsILineInputStream': {'kind': 'v', 'type': 'Object', },
  \     'nsIDroppedLinkHandler': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMWindowUtils': {'kind': 'v', 'type': 'Object', },
  \     'nsIAccessibleTable': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMFileReader': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMElementTimeControl': {'kind': 'v', 'type': 'Object', },
  \     'nsIProgrammingLanguage': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMCSSStyleSheet': {'kind': 'v', 'type': 'Object', },
  \     'nsIConsoleService': {'kind': 'v', 'type': 'Object', },
  \     'nsIDocShellTreeOwner': {'kind': 'v', 'type': 'Object', },
  \     'nsIContextMenuListener': {'kind': 'v', 'type': 'Object', },
  \     'nsIExceptionManager': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGViewSpec': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGAnimatedLengthList': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGFEOffsetElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIHelperAppLauncherDialog': {'kind': 'v', 'type': 'Object', },
  \     'xpcIJSModuleLoader': {'kind': 'v', 'type': 'Object', },
  \     'nsICookieService': {'kind': 'v', 'type': 'Object', },
  \     'nsIDeviceMotionData': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGCircleElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIProperty': {'kind': 'v', 'type': 'Object', },
  \     'mozIStorageStatementWrapper': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMStyleSheetList': {'kind': 'v', 'type': 'Object', },
  \     'nsIDNSRecord': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGFilterElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGPathSegCurvetoCubicSmoothRel': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMCSSCharsetRule': {'kind': 'v', 'type': 'Object', },
  \     'nsIIDBCursor': {'kind': 'v', 'type': 'Object', },
  \     'nsIPrefetchService': {'kind': 'v', 'type': 'Object', },
  \     'nsIFeedProcessor': {'kind': 'v', 'type': 'Object', },
  \     'nsIObjectOutputStream': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGAnimatedRect': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMHTMLLabelElement': {'kind': 'v', 'type': 'Object', },
  \     'inIDOMView': {'kind': 'v', 'type': 'Object', },
  \     'nsIResumableChannel': {'kind': 'v', 'type': 'Object', },
  \     'nsIScriptLoaderObserver': {'kind': 'v', 'type': 'Object', },
  \     'nsIUIEventInit': {'kind': 'v', 'type': 'Object', },
  \     'nsICollationFactory': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMHTMLProgressElement': {'kind': 'v', 'type': 'Object', },
  \     'nsITXTToHTMLConv': {'kind': 'v', 'type': 'Object', },
  \     'mozIStorageQuotaCallback': {'kind': 'v', 'type': 'Object', },
  \     'mozIStorageError': {'kind': 'v', 'type': 'Object', },
  \     'nsIJumpListSeparator': {'kind': 'v', 'type': 'Object', },
  \     'nsIWebBrowserFocus': {'kind': 'v', 'type': 'Object', },
  \     'nsISAXXMLReader': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGAnimateMotionElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIIDBDatabaseException': {'kind': 'v', 'type': 'Object', },
  \     'nsIWritablePropertyBag': {'kind': 'v', 'type': 'Object', },
  \     'nsIControllerCommandTable': {'kind': 'v', 'type': 'Object', },
  \     'nsIJSID': {'kind': 'v', 'type': 'Object', },
  \     'nsIArray': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMUserDataHandler': {'kind': 'v', 'type': 'Object', },
  \     'nsIOfflineCacheUpdate': {'kind': 'v', 'type': 'Object', },
  \     'nsIXPCWrappedJSObjectGetter': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMMimeTypeArray': {'kind': 'v', 'type': 'Object', },
  \     'nsISidebar': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMMozSmsManager': {'kind': 'v', 'type': 'Object', },
  \     'nsIDirectoryEnumerator': {'kind': 'v', 'type': 'Object', },
  \     'nsISyncStreamListener': {'kind': 'v', 'type': 'Object', },
  \     'nsILocalHandlerApp': {'kind': 'v', 'type': 'Object', },
  \     'nsIPrintSettingsWin': {'kind': 'v', 'type': 'Object', },
  \     'nsIHashable': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMHTMLDListElement': {'kind': 'v', 'type': 'Object', },
  \     'fuelIBookmark': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGSetElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMDOMConstructor': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMUIEvent': {'kind': 'v', 'type': 'Object', },
  \     'nsIFrameMessageManager': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMFileException': {'kind': 'v', 'type': 'Object', },
  \     'nsIXULTemplateResult': {'kind': 'v', 'type': 'Object', },
  \     'nsIMouseEventInit': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGLength': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGPreserveAspectRatio': {'kind': 'v', 'type': 'Object', },
  \     'nsIEditorDocShell': {'kind': 'v', 'type': 'Object', },
  \     'nsIDocumentCharsetInfo': {'kind': 'v', 'type': 'Object', },
  \     'nsIConsoleListener': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGAnimatedLength': {'kind': 'v', 'type': 'Object', },
  \     'nsIUnicharStreamLoader': {'kind': 'v', 'type': 'Object', },
  \     'nsIFrameLoaderOwner': {'kind': 'v', 'type': 'Object', },
  \     'nsIXPCException': {'kind': 'v', 'type': 'Object', },
  \     'nsIKeyObject': {'kind': 'v', 'type': 'Object', },
  \     'nsIMIMEService': {'kind': 'v', 'type': 'Object', },
  \     'nsIBidiKeyboard': {'kind': 'v', 'type': 'Object', },
  \     'nsIContentSecurityPolicy': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMHTMLUnknownElement': {'kind': 'v', 'type': 'Object', },
  \     'nsPISocketTransportService': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMGeoPositionOptions': {'kind': 'v', 'type': 'Object', },
  \     'nsIURLFormatter': {'kind': 'v', 'type': 'Object', },
  \     'imgIContainer': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGPolylineElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIFeedResult': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMPaintRequest': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGSVGElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIGSettingsCollection': {'kind': 'v', 'type': 'Object', },
  \     'nsICollection': {'kind': 'v', 'type': 'Object', },
  \     'nsISocketTransport': {'kind': 'v', 'type': 'Object', },
  \     'nsIOutputIterator': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGTextContentElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMCSSRuleList': {'kind': 'v', 'type': 'Object', },
  \     'nsIWebGLExtensionStandardDerivatives': {'kind': 'v', 'type': 'Object', },
  \     'nsIDirectoryServiceProvider2': {'kind': 'v', 'type': 'Object', },
  \     'nsIWebPageDescriptor': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMStyleSheet': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMHTMLParamElement': {'kind': 'v', 'type': 'Object', },
  \     'jsdIValue': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGFESpotLightElement': {'kind': 'v', 'type': 'Object', },
  \     'jsdIScript': {'kind': 'v', 'type': 'Object', },
  \     'nsIScriptError2': {'kind': 'v', 'type': 'Object', },
  \     'nsIClassInfo': {'kind': 'v', 'type': 'Object', },
  \     'nsIContentPermissionRequest': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMFileError': {'kind': 'v', 'type': 'Object', },
  \     'nsIFocusManager': {'kind': 'v', 'type': 'Object', },
  \     'imgITools': {'kind': 'v', 'type': 'Object', },
  \     'nsIKeyObjectFactory': {'kind': 'v', 'type': 'Object', },
  \     'nsIWifiListener': {'kind': 'v', 'type': 'Object', },
  \     'nsIChannelPolicy': {'kind': 'v', 'type': 'Object', },
  \     'nsISecurityCheckedComponent': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGAnimatedPoints': {'kind': 'v', 'type': 'Object', },
  \     'nsIJetpack': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMPopStateEvent': {'kind': 'v', 'type': 'Object', },
  \     'nsIDocShell': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMDeviceAcceleration': {'kind': 'v', 'type': 'Object', },
  \     'nsIEnvironment': {'kind': 'v', 'type': 'Object', },
  \     'nsIUpdatePatch': {'kind': 'v', 'type': 'Object', },
  \     'rdfISerializer': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMHTMLHtmlElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIHttpProtocolHandler': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGUnitTypes': {'kind': 'v', 'type': 'Object', },
  \     'nsIJumpListLink': {'kind': 'v', 'type': 'Object', },
  \     'nsIWebContentHandlerInfo': {'kind': 'v', 'type': 'Object', },
  \     'nsIRDFXMLSerializer': {'kind': 'v', 'type': 'Object', },
  \     'nsICookie': {'kind': 'v', 'type': 'Object', },
  \     'nsIBinaryInputStream': {'kind': 'v', 'type': 'Object', },
  \     'extIEventListener': {'kind': 'v', 'type': 'Object', },
  \     'nsICommandLine': {'kind': 'v', 'type': 'Object', },
  \     'nsINavBookmarksService': {'kind': 'v', 'type': 'Object', },
  \     'nsIThreadManager': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMLinkStyle': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGPoint': {'kind': 'v', 'type': 'Object', },
  \     'nsIXMLHttpRequest': {'kind': 'v', 'type': 'Object', },
  \     'nsISupportsCString': {'kind': 'v', 'type': 'Object', },
  \     'nsIDebug': {'kind': 'v', 'type': 'Object', },
  \     'nsICryptoHMAC': {'kind': 'v', 'type': 'Object', },
  \     'nsIFeedResultListener': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMTreeWalker': {'kind': 'v', 'type': 'Object', },
  \     'nsIProcess': {'kind': 'v', 'type': 'Object', },
  \     'nsITreeView': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMDocumentXBL': {'kind': 'v', 'type': 'Object', },
  \     'nsIFormatConverter': {'kind': 'v', 'type': 'Object', },
  \     'nsIObserverService': {'kind': 'v', 'type': 'Object', },
  \     'nsIApplicationCacheService': {'kind': 'v', 'type': 'Object', },
  \     'nsIDBusHandlerApp': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMHTMLFrameSetElement': {'kind': 'v', 'type': 'Object', },
  \     'nsICertOverrideService': {'kind': 'v', 'type': 'Object', },
  \     'nsIPipe': {'kind': 'v', 'type': 'Object', },
  \     'nsINavHistoryBatchCallback': {'kind': 'v', 'type': 'Object', },
  \     'nsIFactory': {'kind': 'v', 'type': 'Object', },
  \     'nsILoadContext': {'kind': 'v', 'type': 'Object', },
  \     'nsIProtectedAuthThread': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMDOMSettableTokenList': {'kind': 'v', 'type': 'Object', },
  \     'nsISupportsPRTime': {'kind': 'v', 'type': 'Object', },
  \     'amIWebInstallListener': {'kind': 'v', 'type': 'Object', },
  \     'nsITaskbarPreviewButton': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGStopElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMGetSVGDocument': {'kind': 'v', 'type': 'Object', },
  \     'inISearchProcess': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGUseElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIWebGLShaderArray': {'kind': 'v', 'type': 'Object', },
  \     'nsIEnumerator': {'kind': 'v', 'type': 'Object', },
  \     'nsIIncrementalDownload': {'kind': 'v', 'type': 'Object', },
  \     'nsIStructuredCloneContainer': {'kind': 'v', 'type': 'Object', },
  \     'nsIDocShellHistory': {'kind': 'v', 'type': 'Object', },
  \     'nsICacheSession': {'kind': 'v', 'type': 'Object', },
  \     'txIFunctionEvaluationContext': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMHTMLEmbedElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMHTMLAnchorElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIWebBrowserStream': {'kind': 'v', 'type': 'Object', },
  \     'nsIProfileMigrator': {'kind': 'v', 'type': 'Object', },
  \     'nsIRDFPropagatableDataSource': {'kind': 'v', 'type': 'Object', },
  \     'mozISpellI18NUtil': {'kind': 'v', 'type': 'Object', },
  \     'nsITreeBoxObject': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMChromeWindow': {'kind': 'v', 'type': 'Object', },
  \     'nsISupports': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGFEMergeNodeElement': {'kind': 'v', 'type': 'Object', },
  \     'nsILoginManagerIEMigrationHelper': {'kind': 'v', 'type': 'Object', },
  \     'nsIAppStartup': {'kind': 'v', 'type': 'Object', },
  \     'nsIFeedEntry': {'kind': 'v', 'type': 'Object', },
  \     'nsIXPCComponents_Interfaces': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMGeoPositionError': {'kind': 'v', 'type': 'Object', },
  \     'nsIRDFXMLSinkObserver': {'kind': 'v', 'type': 'Object', },
  \     'nsIDownloadManagerUI': {'kind': 'v', 'type': 'Object', },
  \     'nsIIDBDatabase': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMHTMLQuoteElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMMimeType': {'kind': 'v', 'type': 'Object', },
  \     'nsIX509Cert2': {'kind': 'v', 'type': 'Object', },
  \     'nsIFeedResultService': {'kind': 'v', 'type': 'Object', },
  \     'nsIMarkupDocumentViewer': {'kind': 'v', 'type': 'Object', },
  \     'txINodeSet': {'kind': 'v', 'type': 'Object', },
  \     'nsIFormSubmitObserver': {'kind': 'v', 'type': 'Object', },
  \     'nsIHttpAuthenticableChannel': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGPathSegMovetoAbs': {'kind': 'v', 'type': 'Object', },
  \     'nsIScriptableInputStream': {'kind': 'v', 'type': 'Object', },
  \     'nsIContentURIGrouper': {'kind': 'v', 'type': 'Object', },
  \     'nsIAutoCompleteResult': {'kind': 'v', 'type': 'Object', },
  \     'nsIAsyncOutputStream': {'kind': 'v', 'type': 'Object', },
  \     'nsIIOUtil': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMHTMLHeadingElement': {'kind': 'v', 'type': 'Object', },
  \     'nsISSLStatusProvider': {'kind': 'v', 'type': 'Object', },
  \     'nsIAccessibleDocument': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMCanvasRenderingContext2D': {'kind': 'v', 'type': 'Object', },
  \     'nsIStreamListener': {'kind': 'v', 'type': 'Object', },
  \     'nsIOutputStreamCallback': {'kind': 'v', 'type': 'Object', },
  \     'jsdIScriptEnumerator': {'kind': 'v', 'type': 'Object', },
  \     'nsIWebProgress': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMPerformanceTiming': {'kind': 'v', 'type': 'Object', },
  \     'nsIBoxObject': {'kind': 'v', 'type': 'Object', },
  \     'mozIPlacesAutoComplete': {'kind': 'v', 'type': 'Object', },
  \     'nsIScreenManager': {'kind': 'v', 'type': 'Object', },
  \     'nsIUpdateTimerManager': {'kind': 'v', 'type': 'Object', },
  \     'mozIVisitedStatusCallback': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGAnimatedPreserveAspectRatio': {'kind': 'v', 'type': 'Object', },
  \     'nsIHttpChannel': {'kind': 'v', 'type': 'Object', },
  \     'txIEXSLTRegExFunctions': {'kind': 'v', 'type': 'Object', },
  \     'nsIXHRSendable': {'kind': 'v', 'type': 'Object', },
  \     'nsINavHistoryResultObserver': {'kind': 'v', 'type': 'Object', },
  \     'nsICycleCollectorListener': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMHTMLDataListElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIObjectLoadingContent': {'kind': 'v', 'type': 'Object', },
  \     'nsIAuthPromptProvider': {'kind': 'v', 'type': 'Object', },
  \     'nsISelection': {'kind': 'v', 'type': 'Object', },
  \     'nsIAccessibleRole': {'kind': 'v', 'type': 'Object', },
  \     'mozIStorageBindingParams': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGLengthList': {'kind': 'v', 'type': 'Object', },
  \     'nsIRDFDelegateFactory': {'kind': 'v', 'type': 'Object', },
  \     'jsdIContext': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMTextMetrics': {'kind': 'v', 'type': 'Object', },
  \     'nsILoadGroup': {'kind': 'v', 'type': 'Object', },
  \     'nsICommandParams': {'kind': 'v', 'type': 'Object', },
  \     'nsISeekableStream': {'kind': 'v', 'type': 'Object', },
  \     'nsIConverterOutputStream': {'kind': 'v', 'type': 'Object', },
  \     'nsIProperties': {'kind': 'v', 'type': 'Object', },
  \     'nsIUserCertPicker': {'kind': 'v', 'type': 'Object', },
  \     'nsICommandHandlerInit': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGAElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGTransform': {'kind': 'v', 'type': 'Object', },
  \     'nsIPromptService2': {'kind': 'v', 'type': 'Object', },
  \     'mozIStorageAggregateFunction': {'kind': 'v', 'type': 'Object', },
  \     'nsIInlineEventHandlers': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMProcessingInstruction': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMHTMLTextAreaElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIFaviconDataCallback': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGAngle': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMXPathEvaluator': {'kind': 'v', 'type': 'Object', },
  \     'nsIRefreshURI': {'kind': 'v', 'type': 'Object', },
  \     'nsISecretDecoderRing': {'kind': 'v', 'type': 'Object', },
  \     'nsIPrintOptions': {'kind': 'v', 'type': 'Object', },
  \     'nsIHttpActivityObserver': {'kind': 'v', 'type': 'Object', },
  \     'nsITraceableChannel': {'kind': 'v', 'type': 'Object', },
  \     'nsIBrowserBoxObject': {'kind': 'v', 'type': 'Object', },
  \     'nsIPrefBranchInternal': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMGeoPositionCoords': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMElementCSSInlineStyle': {'kind': 'v', 'type': 'Object', },
  \     'nsIDialogParamBlock': {'kind': 'v', 'type': 'Object', },
  \     'nsITransactionManager': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMModalContentWindow': {'kind': 'v', 'type': 'Object', },
  \     'nsIRDFXMLParser': {'kind': 'v', 'type': 'Object', },
  \     'nsICryptoHash': {'kind': 'v', 'type': 'Object', },
  \     'nsIAnnotationService': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMDeviceOrientationEvent': {'kind': 'v', 'type': 'Object', },
  \     'nsICapturePicker': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMHTMLDirectoryElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMXULLabelElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIAuthPromptCallback': {'kind': 'v', 'type': 'Object', },
  \     'nsIJSXMLHttpRequest': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGFEFuncGElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIProgressEventSink': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGFETurbulenceElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIAlertsProgressListener': {'kind': 'v', 'type': 'Object', },
  \     'nsICacheDeviceInfo': {'kind': 'v', 'type': 'Object', },
  \     'nsISHistoryInternal': {'kind': 'v', 'type': 'Object', },
  \     'nsIContentViewerFile': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGPatternElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIConverterInputStream': {'kind': 'v', 'type': 'Object', },
  \     'nsIDialogCreator': {'kind': 'v', 'type': 'Object', },
  \     'nsIDocCharset': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMCSSPrimitiveValue': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMDocumentTouch': {'kind': 'v', 'type': 'Object', },
  \     'nsIDirIndexParser': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMClientRectList': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMHTMLTableCaptionElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIAnnotationObserver': {'kind': 'v', 'type': 'Object', },
  \     'nsIPopupWindowManager': {'kind': 'v', 'type': 'Object', },
  \     'nsIWebGLFramebuffer': {'kind': 'v', 'type': 'Object', },
  \     'extIEventItem': {'kind': 'v', 'type': 'Object', },
  \     'nsIUpdateCheckListener': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGPathSegCurvetoQuadraticRel': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMFileList': {'kind': 'v', 'type': 'Object', },
  \     'nsIWebNavigationInfo': {'kind': 'v', 'type': 'Object', },
  \     'mozIThirdPartyUtil': {'kind': 'v', 'type': 'Object', },
  \     'nsIRequestPolicy': {'kind': 'v', 'type': 'Object', },
  \     'nsITaskbarProgress': {'kind': 'v', 'type': 'Object', },
  \     'nsIWebContentConverterService': {'kind': 'v', 'type': 'Object', },
  \     'nsIIDBCursorWithValue': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMXULTreeElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIDeviceMotionListener': {'kind': 'v', 'type': 'Object', },
  \     'nsIXPCComponents_ClassesByID': {'kind': 'v', 'type': 'Object', },
  \     'nsICanvasGLBuffer': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMMozBlobBuilder': {'kind': 'v', 'type': 'Object', },
  \     'nsIPrintingPromptService': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMNSXPathExpression': {'kind': 'v', 'type': 'Object', },
  \     'nsINavHistoryResultNode': {'kind': 'v', 'type': 'Object', },
  \     'nsIWritablePropertyBag2': {'kind': 'v', 'type': 'Object', },
  \     'nsITransactionList': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGPathSegCurvetoCubicRel': {'kind': 'v', 'type': 'Object', },
  \     'nsIClipboardDragDropHookList': {'kind': 'v', 'type': 'Object', },
  \     'nsIJARURI': {'kind': 'v', 'type': 'Object', },
  \     'nsIWinAppHelper': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMNodeFilter': {'kind': 'v', 'type': 'Object', },
  \     'nsISocketTransportService': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMNavigatorGeolocation': {'kind': 'v', 'type': 'Object', },
  \     'nsISelectionDisplay': {'kind': 'v', 'type': 'Object', },
  \     'nsIJSCID': {'kind': 'v', 'type': 'Object', },
  \     'nsIObserver': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMHTMLByteRanges': {'kind': 'v', 'type': 'Object', },
  \     'nsIGnomeVFSMimeApp': {'kind': 'v', 'type': 'Object', },
  \     'nsIGeolocationUpdate': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMDragEvent': {'kind': 'v', 'type': 'Object', },
  \     'nsIProtocolHandler': {'kind': 'v', 'type': 'Object', },
  \     'nsIHTMLObjectResizeListener': {'kind': 'v', 'type': 'Object', },
  \     'nsIKeygenThread': {'kind': 'v', 'type': 'Object', },
  \     'nsIPersistentProperties': {'kind': 'v', 'type': 'Object', },
  \     'nsIXPCComponents_utils_Sandbox': {'kind': 'v', 'type': 'Object', },
  \     'nsIScriptableUnescapeHTML': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGFEDiffuseLightingElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIURIRefObject': {'kind': 'v', 'type': 'Object', },
  \     'nsISupportsPRUint32': {'kind': 'v', 'type': 'Object', },
  \     'imgIDecoderObserver': {'kind': 'v', 'type': 'Object', },
  \     'nsIPrinterEnumerator': {'kind': 'v', 'type': 'Object', },
  \     'nsISOCKSSocketInfo': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMEventTarget': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGScriptElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIGfxInfoDebug': {'kind': 'v', 'type': 'Object', },
  \     'nsIPermissionManager': {'kind': 'v', 'type': 'Object', },
  \     'nsIXPCComponents': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMHTMLUListElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIBlocklistService': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGPathSegCurvetoQuadraticSmoothAbs': {'kind': 'v', 'type': 'Object', },
  \     'nsIWifiMonitor': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMHTMLBaseElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGFEMergeElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIFileInputStream': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMHTMLMenuElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMHTMLDivElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIUpdate': {'kind': 'v', 'type': 'Object', },
  \     'nsIContentFrameMessageManager': {'kind': 'v', 'type': 'Object', },
  \     'nsIPlacesImportExportService': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMBeforeUnloadEvent': {'kind': 'v', 'type': 'Object', },
  \     'nsIZipWriter': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGLineElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIURIClassifier': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGFEConvolveMatrixElement': {'kind': 'v', 'type': 'Object', },
  \     'nsISAXMutableAttributes': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMXULSelectControlItemElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIRDFResource': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGPathSegList': {'kind': 'v', 'type': 'Object', },
  \     'mozIStorageStatement': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGZoomAndPan': {'kind': 'v', 'type': 'Object', },
  \     'nsIJumpListShortcut': {'kind': 'v', 'type': 'Object', },
  \     'nsIPartialFileInputStream': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMDOMStringMap': {'kind': 'v', 'type': 'Object', },
  \     'nsPIEditorTransaction': {'kind': 'v', 'type': 'Object', },
  \     'nsISearchSubmission': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMWindowInternal': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGFilterPrimitiveStandardAttributes': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGAnimatedString': {'kind': 'v', 'type': 'Object', },
  \     'nsISHistory': {'kind': 'v', 'type': 'Object', },
  \     'nsIWebGLExtension': {'kind': 'v', 'type': 'Object', },
  \     'nsIPrintSettings': {'kind': 'v', 'type': 'Object', },
  \     'nsISupportsInterfacePointer': {'kind': 'v', 'type': 'Object', },
  \     'nsIFlavorDataProvider': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGSymbolElement': {'kind': 'v', 'type': 'Object', },
  \     'mozIStorageFunction': {'kind': 'v', 'type': 'Object', },
  \     'jsdIStackFrame': {'kind': 'v', 'type': 'Object', },
  \     'nsIServerSocket': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMXULDocument': {'kind': 'v', 'type': 'Object', },
  \     'nsIParentalControlsService': {'kind': 'v', 'type': 'Object', },
  \     'nsIEditorSpellCheck': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMHTMLScriptElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIWebBrowserChromeFocus': {'kind': 'v', 'type': 'Object', },
  \     'nsIEntityConverter': {'kind': 'v', 'type': 'Object', },
  \     'nsISimpleEnumerator': {'kind': 'v', 'type': 'Object', },
  \     'nsIEmbeddingSiteWindow2': {'kind': 'v', 'type': 'Object', },
  \     'nsIBufferedOutputStream': {'kind': 'v', 'type': 'Object', },
  \     'nsIChannelEventSink': {'kind': 'v', 'type': 'Object', },
  \     'nsIXPCComponents_Utils': {'kind': 'v', 'type': 'Object', },
  \     'nsITransactionListener': {'kind': 'v', 'type': 'Object', },
  \     'nsIPrintingPrompt': {'kind': 'v', 'type': 'Object', },
  \     'nsIMozIconURI': {'kind': 'v', 'type': 'Object', },
  \     'nsISupportsPRInt32': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGPathSegArcAbs': {'kind': 'v', 'type': 'Object', },
  \     'nsIFrameLoader': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGPathSegLinetoVerticalRel': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMCommandEvent': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMXULCommandDispatcher': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMGeoGeolocation': {'kind': 'v', 'type': 'Object', },
  \     'nsIX509CertDB': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMRangeException': {'kind': 'v', 'type': 'Object', },
  \     'extIPreference': {'kind': 'v', 'type': 'Object', },
  \     'nsIEventInit': {'kind': 'v', 'type': 'Object', },
  \     'nsIScriptSecurityManager': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMTouchList': {'kind': 'v', 'type': 'Object', },
  \     'nsIWeakReference': {'kind': 'v', 'type': 'Object', },
  \     'nsIAccessibleHyperLink': {'kind': 'v', 'type': 'Object', },
  \     'nsILoginMetaInfo': {'kind': 'v', 'type': 'Object', },
  \     'nsIForwardIterator': {'kind': 'v', 'type': 'Object', },
  \     'nsISSLStatus': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMFormData': {'kind': 'v', 'type': 'Object', },
  \     'nsIDNSService': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMXULElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIBFCacheEntry': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMMozNavigatorSms': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMXPathResult': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGLocatable': {'kind': 'v', 'type': 'Object', },
  \     'nsIWebBrowserFind': {'kind': 'v', 'type': 'Object', },
  \     'nsICryptoFIPSInfo': {'kind': 'v', 'type': 'Object', },
  \     'nsIGlobalHistory': {'kind': 'v', 'type': 'Object', },
  \     'nsICertVerificationResult': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMTransitionEvent': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMXULMultiSelectControlElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMNSEditableElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIHistoryEntry': {'kind': 'v', 'type': 'Object', },
  \     'jsdIErrorHook': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMHTMLInputElement': {'kind': 'v', 'type': 'Object', },
  \     'mozIStorageStatementCallback': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMRGBColor': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMPluginArray': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMNamedNodeMap': {'kind': 'v', 'type': 'Object', },
  \     'nsITreeSelection': {'kind': 'v', 'type': 'Object', },
  \     'mozIVisitInfoCallback': {'kind': 'v', 'type': 'Object', },
  \     'nsIFormAutoComplete': {'kind': 'v', 'type': 'Object', },
  \     'nsIControllers': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGSwitchElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIBrowserHandler': {'kind': 'v', 'type': 'Object', },
  \     'nsIURIChecker': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMDataTransfer': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMHTMLImageElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIX509CertDB2': {'kind': 'v', 'type': 'Object', },
  \     'rdfIDataSource': {'kind': 'v', 'type': 'Object', },
  \     'nsISound': {'kind': 'v', 'type': 'Object', },
  \     'nsIFeedContainer': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMXULButtonElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIXULTemplateQueryProcessor': {'kind': 'v', 'type': 'Object', },
  \     'nsIEmbeddingSiteWindow': {'kind': 'v', 'type': 'Object', },
  \     'nsIStandardURL': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGFEPointLightElement': {'kind': 'v', 'type': 'Object', },
  \     'mozIAsyncFavicons': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGFitToViewBox': {'kind': 'v', 'type': 'Object', },
  \     'nsIAsyncVerifyRedirectCallback': {'kind': 'v', 'type': 'Object', },
  \     'nsISearchableInputStream': {'kind': 'v', 'type': 'Object', },
  \     'nsIHTMLEditor': {'kind': 'v', 'type': 'Object', },
  \     'nsIPK11Token': {'kind': 'v', 'type': 'Object', },
  \     'nsIControllerCommand': {'kind': 'v', 'type': 'Object', },
  \     'nsIXSLTProcessorPrivate': {'kind': 'v', 'type': 'Object', },
  \     'nsIWifiAccessPoint': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMHTMLOListElement': {'kind': 'v', 'type': 'Object', },
  \     'nsINSSCertCache': {'kind': 'v', 'type': 'Object', },
  \     'nsISocketProviderService': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGMarkerElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIZipReaderCache': {'kind': 'v', 'type': 'Object', },
  \     'nsIWebProgressListener2': {'kind': 'v', 'type': 'Object', },
  \     'nsIAuthPrompt': {'kind': 'v', 'type': 'Object', },
  \     'jsdINestCallback': {'kind': 'v', 'type': 'Object', },
  \     'nsIHTTPIndex': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMNode': {'kind': 'v', 'type': 'Object', },
  \     'nsIProfileUnlocker': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMNodeIterator': {'kind': 'v', 'type': 'Object', },
  \     'nsIIndexedDatabaseUsageCallback': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGAnimatedPathData': {'kind': 'v', 'type': 'Object', },
  \     'nsIEncodedChannel': {'kind': 'v', 'type': 'Object', },
  \     'nsIDiskCacheStreamInternal': {'kind': 'v', 'type': 'Object', },
  \     'jsdIContextEnumerator': {'kind': 'v', 'type': 'Object', },
  \     'nsIRDFContainer': {'kind': 'v', 'type': 'Object', },
  \     'nsIAccessibleValue': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMDocumentFragment': {'kind': 'v', 'type': 'Object', },
  \     'nsIFrameMessageListener': {'kind': 'v', 'type': 'Object', },
  \     'nsIInputStream': {'kind': 'v', 'type': 'Object', },
  \     'nsIXTFElementWrapper': {'kind': 'v', 'type': 'Object', },
  \     'nsIHandlerService': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGRectElement': {'kind': 'v', 'type': 'Object', },
  \     'mozITXTToHTMLConv': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMCSSFontFaceRule': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMFontFaceList': {'kind': 'v', 'type': 'Object', },
  \     'nsIDocShellLoadInfo': {'kind': 'v', 'type': 'Object', },
  \     'nsIXPCComponents_Results': {'kind': 'v', 'type': 'Object', },
  \     'nsIEventListenerService': {'kind': 'v', 'type': 'Object', },
  \     'nsIContentViewerEdit': {'kind': 'v', 'type': 'Object', },
  \     'nsISupportsPrimitive': {'kind': 'v', 'type': 'Object', },
  \     'nsIEditorStyleSheets': {'kind': 'v', 'type': 'Object', },
  \     'nsIClientAuthUserDecision': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGPolygonElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGAnimateElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIAboutModule': {'kind': 'v', 'type': 'Object', },
  \     'nsIDocumentStateListener': {'kind': 'v', 'type': 'Object', },
  \     'nsISHTransaction': {'kind': 'v', 'type': 'Object', },
  \     'nsIASN1Sequence': {'kind': 'v', 'type': 'Object', },
  \     'nsIAutoCompleteSimpleResult': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMToString': {'kind': 'v', 'type': 'Object', },
  \     'nsIJumpListItem': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMScreen': {'kind': 'v', 'type': 'Object', },
  \     'nsIApplicationCacheChannel': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGTextPositioningElement': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGPathSegCurvetoCubicAbs': {'kind': 'v', 'type': 'Object', },
  \     'nsIUploadChannel': {'kind': 'v', 'type': 'Object', },
  \     'nsIMemoryMultiReporterCallback': {'kind': 'v', 'type': 'Object', },
  \     'nsIController': {'kind': 'v', 'type': 'Object', },
  \     'nsITaskbarOverlayIconController': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMSVGURIReference': {'kind': 'v', 'type': 'Object', },
  \     'nsIWinTaskbar': {'kind': 'v', 'type': 'Object', },
  \     'nsIDOMStorageEvent': {'kind': 'v', 'type': 'Object', }
  \   }
  \ }
" 1}}}
" Components.utils {{{1
let s:XPCOM.Components.props.utils = {
  \   'kind': 'v', 'type': 'Object', 'menu': '[Components]',
  \   'props': {
  \     'createObjectIn':        {'kind': 'f', 'menu': '[Components.utils]', 'type': 'Object'},
  \     'evalInSandbox':         {'kind': 'f', 'menu': '[Components.utils]', 'type': 'Object'},
  \     'forceGC':               {'kind': 'f', 'menu': '[Components.utils]'},
  \     'getGlobalForObject':    {'kind': 'f', 'menu': '[Components.utils]', 'type': 'Object'},
  \     'getWeakReference':      {'kind': 'f', 'menu': '[Components.utils]', 'type': 'Object'},
  \     'import':                {'kind': 'f', 'menu': '[Components.utils]', 'type': 'Object'},
  \     'lookupMethod':          {'kind': 'f', 'menu': '[Components.utils]', 'type': 'Object'},
  \     'makeObjectPropsNormal': {'kind': 'f', 'menu': '[Components.utils]', 'type': 'Object'},
  \     'reportError':           {'kind': 'f', 'menu': '[Components.utils]'},
  \     'schedulePreciseGC':     {'kind': 'f', 'menu': '[Components.utils]'},
  \     'setGCZeal':             {'kind': 'f', 'menu': '[Components.utils]'},
  \     'Sandbox':               {'kind': 'f', 'menu': '[Components.utils]', 'type': 'Object'},
  \     'atline':                {'kind': 'v', 'menu': '[Components.utils]', 'type': 'Boolean'},
  \     'methodjit':             {'kind': 'v', 'menu': '[Components.utils]', 'type': 'Boolean'},
  \     'methodjit_always':      {'kind': 'v', 'menu': '[Components.utils]', 'type': 'Boolean'},
  \     'relimit':               {'kind': 'v', 'menu': '[Components.utils]', 'type': 'Boolean'},
  \     'strict':                {'kind': 'v', 'menu': '[Components.utils]', 'type': 'Boolean'},
  \     'werror':                {'kind': 'v', 'menu': '[Components.utils]', 'type': 'Boolean'},
  \     'xml':                   {'kind': 'v', 'menu': '[Components.utils]', 'type': 'Boolean'},
  \   }
  \ }
" 1}}}
" Components.manager {{{1
let s:XPCOM.Components.props.manager = {
  \   'kind': 'v', 'type': 'Object', 'menu': '[Components]',
  \   'props': {
  \     'addBootstrappedManifestLocation':    {'kind': 'f', 'menu': '[Components.manager]'},
  \     'createInstance':                     {'kind': 'f', 'menu': '[Components.manager]'},
  \     'createInstanceByContractID':         {'kind': 'f', 'menu': '[Components.manager]'},
  \     'getClassObject':                     {'kind': 'f', 'menu': '[Components.manager]'},
  \     'getClassObjectByContractID':         {'kind': 'f', 'menu': '[Components.manager]'},
  \     'QueryInterface':                     {'kind': 'f', 'menu': '[Components.manager]'},
  \     'removeBootstrappedManifestLocation': {'kind': 'f', 'menu': '[Components.manager]'},
  \   }
  \ }
" 1}}}

function! js#xpcom#Extend (names)
  if !exists('b:GlobalObject')
    return
  endif

  call extend(b:GlobalObject, s:XPCOM)
endfunction

let &cpo = s:save_cpo
unlet s:save_cpo

